希望创建一个正则表达式以匹配以逗号分隔的表达式的左侧,如下所示,最好忽略任何空格:
abc = a1, def = b2, ghi = c3
表达式将匹配abc
def
并且ghi
到目前为止已经使用了这个正则表达式(?<=,).*?(?=\=)
,但是它与第一个值不匹配并且不忽略空格。
您的模式与第一个值不匹配,因为正向后向(?<=,)
断言左侧有一个逗号,示例字符串中的第一个值不存在该逗号。
该模式不会忽略空格,因为在这一部分.*?(?=\=)
中,“点星”可以匹配(包括空格)到断言(?=\=)
为真的点。
获得第一个值的一个选项是使用捕获组并匹配以逗号结尾或断言字符串结尾的模式。
(\w+)\s+=\s+\w+(?:,|$)
解释
(\w+)
在第 1 组中捕获 1+ 个单词字符\s+=\s+
=
空格字符之间的匹配\w+
匹配 1+ 个单词字符(?:,|$)
匹配逗号或断言字符串的结尾本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句