我有以下字符串[Field1]='Field1Value'|[Field2]='Field2Value'&[Field3]='Field3Value'
,我希望获得正则表达式匹配,直到"&"
或"|"
,但我还要包含"&"
或{{ 1}}在我的比赛中。
意味着我的字符串应该创建以下匹配项:
"|"
我现在正在使用1. [Field1]='Field1Value'
2. |
3. [Field2]='Field2Value'
4. &
5. [Field3]='Field3Value'
,但问题是返回:
([^&^\|]*)
答案 0 :(得分:2)
您可以尝试以下代码。
> var s = "[Field1]='Field1Value'|[Field2]='Field2Value'&[Field3]='Field3Value'";
undefined
> s.match(/[^|&]+|[|&]/g)
[ '[Field1]=\'Field1Value\'',
'|',
'[Field2]=\'Field2Value\'',
'&',
'[Field3]=\'Field3Value\'' ]
<强>解释强>
[^|&]+
匹配任何字符,但不能匹配|
或&
一次或多次。|
或[|&]
匹配|
或&
符号。答案 1 :(得分:0)
Split
可以返回分隔符:
var s = "[Field1]='Field1Value'|[Field2]='Field2Value'&";
s.split(/(\&|\|)/g);
/*
==> [
"[Field1]='Field1Value'",
"|",
"[Field2]='Field2Value'",
"&",
""
]
*/