4

我正在使用 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 并找到了几个示例,但无法将它们更改为对我有用。

谢谢。

4

1 回答 1

6

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

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

并替换为\1.

请参阅正则表达式演示

详情

  • ^- 字符串的开始
  • ([^,]*,[^,]*)- 第 1 组(稍后\1通过替换模式的反向引用引用):
    • [^,]*- 除逗号外的任何 0+ 字符(为防止跨行溢出,请添加\n\r到否定字符类 - [^,\n\r]*
    • ,- 一个逗号
    • [^,]*- 除逗号外的任何 0+ 个字符
  • ,- 一个逗号
  • .*- 尽可能多的除换行符以外的任何 0+ 字符
于 2017-05-23T16:08:07.230 回答