我有一群以这种方式命名的艺术家:
Killers, The
Treatment, The
Virginmarys, The
我需要它们看起来像
The Killers
The Treatment
The Virginmarys
我能够将这些行与, The
匹配((^|\n)(.*, The)
就是我所使用的),但更高级的语法是我的意思。我也可以在替换语法上使用regex
(它适用于TextPipe
过滤器,因此也可以用于Notepad++
或任何其他Regex
文本编辑器。
答案 0 :(得分:1)
您应该可以使用以下内容:
Find: (\S+),\s\S*
Replace: The $1
或包含The
..
Find: (\S+),\s+(\S+)
Replace: $2 $1
根据您的编辑器,您可能最好使用\1
,\2
等来捕获群组。
答案 1 :(得分:0)
由于您需要在逗号之前专门捕获标题,请执行以下操作:
(^|\n)(.*), The
替换它将“the”放在正确的位置:
\1The \2
答案 2 :(得分:0)
Regular expressions定义匹配但不替换。
如何以及以何种方式执行替换高度依赖于应用程序。
大多数提供正则表达式支持的编辑器都在每行一行上工作。
其中一些将允许替换,如
s/^(.*Banana)/INSERTED LINE\n\1/
然后在每次匹配之前插入特定模式。请注意,其他人可能根本不允许替换模式中的换行符。在VIM中,您可以使用Ctrl+K Return Return
在命令提示符中输入换行符。 YMMV。
在Java中,您只需先打印插入文本,然后打印匹配的行。