我正在使用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并找到了几个例子,但无法改变它们对我有效。
感谢。
答案 0 :(得分:3)
您可以使用具有以下模式的 Perl 正则表达式选项:
^([^,]*,[^,]*),.*
并替换为\1
。
请参阅regex demo。
<强>详情:
^
- 字符串开头([^,]*,[^,]*)
- 第1组(后来从替换模式引用\1
反向引用):
[^,]*
- 除了逗号之外的任何0 +字符(为了防止跨行溢出,将\n\r
添加到否定的字符类中 - [^,\n\r]*
),
- 逗号[^,]*
- 除逗号外的任何0 +字符,
- 逗号.*
- 除尽可能多的换行符之外的任何0 +字符