RegEx - 如何选择第二个逗号及其后的所有内容

时间:2017-05-23 15:54:40

标签: regex ultraedit

我正在使用UltraEdit。我有一个包含这样的字符串的文本文件

Workspace\\Trays\\Dialogs\\Components, Expand, kThisComputerOnly, P_BOOLEAN },
WebCommonDialog Sign_Out, Left, kThisComputerOnly, P_INTEGER_RANGE(0, 4096) },
ThreeDTextDlg, x, kThisComputerOnly, P_INTEGER_RANGE(0, 4096) },
Preferences\\Graphics, CtxDbgMaxGLVersionMajor, kThisComputerOnly, P_INTEGER },

UltraEdit允许PERL,UNIX和UltraEdit样式的RegEx。 我需要选择第二个逗号和所有内容到行尾并删除它。

使用regexpal.com我尝试了几种不同的方法,但无法弄明白。

/,\s.+/ selects the first comma
/[,]\s.+/ same as above

我无法弄清楚如何选择第二个命令以及其他命令。

我也搜索了StackOverflow并找到了几个例子,但无法改变它们对我有效。

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用具有以下模式的 Perl 正则表达式选项:

^([^,]*,[^,]*),.*

并替换为\1

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • ([^,]*,[^,]*) - 第1组(后来从替换模式引用\1反向引用):
    • [^,]* - 除了逗号之外的任何0 +字符(为了防止跨行溢出,将\n\r添加到否定的字符类中 - [^,\n\r]*
    • , - 逗号
    • [^,]* - 除逗号外的任何0 +字符
  • , - 逗号
  • .* - 除尽可能多的换行符之外的任何0 +字符