Notepad ++查找/替换正则表达式帮助

时间:2011-04-03 23:49:18

标签: regex notepad++

我在使用Notepad ++进行字符串替换时遇到问题,需要一些帮助。

我的档案:

LastName,(tab)FirstName[optional]MiddleName

有时会有数据具有中间名,有时不会。

Public,JohnQ.
Doe,John
Clinton,WilliamJefferson

将是:

Public(tab)John(tab)Q
Doe(tab)John
Clinton(tab)William(tab)Jefferson

我想把它分成这个:

LastName(tab)FirstName(tab)MiddleName

2 个答案:

答案 0 :(得分:4)

感谢您添加示例输入。它有很大帮助。试试这个,看看它是否符合你的要求。

查找,确保选中匹配大小写

([A-Z][a-z]*),([A-Z][a-z]*)(.*)

替换为:

\1(tab)\2(tab)\3

当然,(tab)实际上是一个标签字符,您必须自己放置在替换字符串中。

答案 1 :(得分:0)

这样一个丑陋的正则表达式对我来说对你提供的例子很有用:

(\w+),(\w+?)(([A-Z]\w*\.?)?)\n

替换为

\1\t\2\t\3\n

注意:

  • 仅当中间名以A-Z中的字母开头时才有效。如果notepad ++支持[A-Z],我可以将[[:upper:]]替换为{{1}}。(我不知道)。
  • 我需要围绕中间名称部分的第二个括号,因为当没有中间名时我需要至少匹配一个空字符串。