所以我的字符串看起来像这样:
Basic information, advanced information, super information, no information
Run Code Online (Sandbox Code Playgroud)
我想把所有内容捕获到第二个逗号,所以我得到:
基本信息,高级信息
什么是正则表达式?
我试过了(.*,.*),但是我明白了
基本信息,高级信息,超级信息,
Lau*_*ves 26
这将捕获但不包括第二个逗号:
[^,]*,[^,]*
Run Code Online (Sandbox Code Playgroud)
英文翻译:
[^,]* =尽可能多的非逗号字符
, =逗号
[^,]* =尽可能多的非逗号字符
[...]是一个角色类.[abc]表示"a或b或c",[^abc]表示除a或b或c之外的任何内容.
我会采取 DRY 方法,如下所示:
^([^,]*,){1}[^,]*
Run Code Online (Sandbox Code Playgroud)
这样,您可以匹配所有内容,直到出现第n个字符,而无需重复自己(除了最后一个模式之外)。
虽然在原始海报的情况下,组和组的重复是没有用的,但我认为这将帮助其他需要匹配超过 2 次模式的人。
解释: