![](/img/trans.png)
[英]How to match and copy everything up to first occurrence of a character using regex?
[英]How to match everything up to the second occurrence of a character?
所以我的字符串看起来像这样:
Basic information, advanced information, super information, no information
我想捕获直到第二个逗号的所有内容,所以我得到:
Basic information, advanced information
那将是什么正则表达式?
我试过: (.*,.*),
但我明白了
Basic information, advanced information, super information,
这将捕获但不包括第二个逗号:
[^,]*,[^,]*
英文翻译:
[^,]*
= 尽可能多的非逗号字符
,
= 逗号
[^,]*
= 尽可能多的非逗号字符
[...]
是一个字符类。 [abc]
表示“a 或 b 或 c”,而[^abc]
表示除 a 或 b 或 c 之外的任何内容。
您可以尝试^(.*?,.*?),
问题是.*
是贪婪的并且匹配最大数量的字符。 这 ? 后面 * 将行为更改为非贪婪。
您也可以在每个 .*? 周围加上括号。 如果需要,可以单独捕获字符串。
我会采用 DRY 方法,如下所示:
^([^,]*,){1}[^,]*
这样,您可以匹配所有内容,直到出现一个字符,而无需重复自己,除了最后一个模式。
尽管在原始海报的情况下,分组和分组的重复是没有用的,我认为这将有助于其他需要匹配超过 2 次模式的人。
解释:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.