正则表达式:匹配除组以外的任何内容
Regex: match anything but a group
我的文本格式如下:
(delimiter)
111111
(delimiter)
222222
(delimiter)
333333
(delimiter)
其中(定界符)是一个字符组,111111,222222,333333 - 一些随机文本,不包括(定界符)组。
有什么办法可以写出像“(定界符)<任何东西,但定界符>(定界符)”这样的正则表达式吗?
我希望捕获这样的组:
"(delimiter)
111111
(delimiter)",
"(delimiter)
222222
(delimiter)",
"(delimiter)
333333
(delimiter)"
更具体地说,
在我的例子中,分隔符是 ([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s])
我试过像这样使用负前瞻:
(([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s])(?!([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s]))([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s]))
但这似乎对我不起作用。
您可以在字符串 split()
方法中使用正则表达式作为分隔符。它将 return 分隔符之间的所有值。
let string = `12 Dec 2019
111111
13 Dec 2019
222222
14 Dec 2019
333333
15 Dec 2019
`;
let result = string.split(/\s*[0-9]{1,2}\s[A-Z]+\s[0-9]{4}\s/i);
console.log(result);
我将 [A-z]
更改为 [A-Z]
并添加了 i
修饰符以使其不区分大小写。 \s
.
也不需要 []
我的文本格式如下:
(delimiter)
111111
(delimiter)
222222
(delimiter)
333333
(delimiter)
其中(定界符)是一个字符组,111111,222222,333333 - 一些随机文本,不包括(定界符)组。
有什么办法可以写出像“(定界符)<任何东西,但定界符>(定界符)”这样的正则表达式吗?
我希望捕获这样的组:
"(delimiter)
111111
(delimiter)",
"(delimiter)
222222
(delimiter)",
"(delimiter)
333333
(delimiter)"
更具体地说,
在我的例子中,分隔符是 ([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s])
我试过像这样使用负前瞻:
(([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s])(?!([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s]))([0-9]{1,2}[\s][A-z]+[\s][0-9]{4}[\s]))
但这似乎对我不起作用。
您可以在字符串 split()
方法中使用正则表达式作为分隔符。它将 return 分隔符之间的所有值。
let string = `12 Dec 2019
111111
13 Dec 2019
222222
14 Dec 2019
333333
15 Dec 2019
`;
let result = string.split(/\s*[0-9]{1,2}\s[A-Z]+\s[0-9]{4}\s/i);
console.log(result);
我将 [A-z]
更改为 [A-Z]
并添加了 i
修饰符以使其不区分大小写。 \s
.
[]