如何将所有内容与第二次出现的角色相匹配?

时间:2010-12-03 21:16:13

标签: regex

所以我的字符串看起来像这样:

Basic information, advanced information, super information, no information

我想将所有内容捕获到第二个逗号,所以我得到:

基本信息,高级信息

那是什么样的正则表达式?

我试过了:(.*,.*),但我得到了

基本信息,高级信息,超级信息,

2 个答案:

答案 0 :(得分:24)

这将捕获但不包括第二个逗号:

[^,]*,[^,]*

英文翻译:

  • [^,]* =尽可能多的非逗号字符

  • , =逗号

  • [^,]* =尽可能多的非逗号字符

[...]是一个字符类。 [abc]表示“a或b或c”,[^abc]表示除a或b或c之外的任何内容。

答案 1 :(得分:4)

你可以尝试^(.*?,.*?), 问题是.*是贪婪的并且匹配最大字符数。的?后面*将行为改为非贪婪。

你也可以把括号括在每个。*?如果你愿意,可以单独捕获字符串。