【发布时间】:2012-08-29 22:16:42
【问题描述】:
我正在编写一些原始的正则表达式代码并在在线测试仪上对其进行测试。我想正确捕获字符串列表 逗号前。具体来说,我想在逗号之前最多捕获 3 个字符串。例如。
string string string,
我想捕获“string string string”(包括空格)。
我该怎么做?
【问题讨论】:
我正在编写一些原始的正则表达式代码并在在线测试仪上对其进行测试。我想正确捕获字符串列表 逗号前。具体来说,我想在逗号之前最多捕获 3 个字符串。例如。
string string string,
我想捕获“string string string”(包括空格)。
我该怎么做?
【问题讨论】:
捕捉逗号前字符最安全的方法是:^([^,]*)
解释:
^ Start of string
( Start of capture group
[^,]* Any number of any non-comma characters
) End of capture group
【讨论】:
如果你的字符串只以逗号结尾,你可以使用这样的东西:
(.*?),
如果你的字符串包含一个逗号,这应该可以:
(.*),
? 使第一个模式的捕获组尽可能不贪婪。删除它会使捕获组变得贪婪。
【讨论】:
. 匹配任何字符。如果您想限制您的字典,请使用其他内容。
^[^,]+
从字符串的开头开始,获取所有不是逗号的内容。
【讨论】: