在逗号之前匹配字符串的正则表达式,除非文本包含一个也由逗号分隔的闭合列表
Regex that matches string before comma unless the text contains a clasped list that is also separated by comma
假设这是我的文本:
"a, b, c (1, 2, 3), d, f (x, y)"
我想匹配枚举的每个点,但我也不希望将子列表逗号解释为终止字符。我想要一个正则表达式来提取以下匹配项:
a
b
c (1,2,3)
d
f (x, y)
我尝试使用可选的前瞻性,但我根本无法让它工作。
您可以使用 string.split
函数。
> "a, b, c (1, 2, 3), d, f (x, y)".split(/,\s*(?![^()]*\))/)
=> ["a", "b", "c (1, 2, 3)", "d", "f (x, y)"]
上面的正则表达式将匹配所有逗号和后面的零个或多个空格,前提是它后面没有 ([^()]*
任何字符但不是 (
或 )
零次或多次和右大括号 )
)
假设这是我的文本:
"a, b, c (1, 2, 3), d, f (x, y)"
我想匹配枚举的每个点,但我也不希望将子列表逗号解释为终止字符。我想要一个正则表达式来提取以下匹配项:
a
b
c (1,2,3)
d
f (x, y)
我尝试使用可选的前瞻性,但我根本无法让它工作。
您可以使用 string.split
函数。
> "a, b, c (1, 2, 3), d, f (x, y)".split(/,\s*(?![^()]*\))/)
=> ["a", "b", "c (1, 2, 3)", "d", "f (x, y)"]
上面的正则表达式将匹配所有逗号和后面的零个或多个空格,前提是它后面没有 ([^()]*
任何字符但不是 (
或 )
零次或多次和右大括号 )
)