0

我有一群以这种方式命名的艺术家:

Killers, The
Treatment, The
Virginmarys, The

我需要他们看起来像

The Killers
The Treatment
The Virginmarys

我能够将这些行与, The((^|\n)(.*, The)是我使用的) 匹配,但更高级的语法让我望而却步。我也可以使用regex替换语法(它用于TextPipe过滤器,因此它也可以用于Notepad++或任何其他Regex文本编辑器)。

4

3 回答 3

2

您应该能够使用以下内容:

Find: (\S+),\s\S*
Replace: The $1

或者包括The..

Find: (\S+),\s+(\S+)
Replace: $2 $1

根据您的编辑器,您最好对捕获组使用\1、等。\2

于 2013-10-05T15:13:05.540 回答
0

由于您需要在逗号之前专门捕获标题,因此请执行以下操作:

(^|\n)(.*), The

并替换它,将“the”放在正确的位置:

\1The \2
于 2013-10-05T11:59:39.513 回答
0

正则表达式定义匹配但不定义替换。

执行替换的方式和方式在很大程度上取决于应用程序

大多数提供正则表达式支持的编辑器以每行为基础工作。

其中一些将允许替换,例如

s/^(.*Banana)/INSERTED LINE\n\1/

然后将在每次匹配之前插入特定模式。请注意,其他人可能根本不允许在替换模式中使用换行符。在 VIM 中,您可以使用Ctrl+K Return Return. YMMV。

在 Java 中,您只需先打印插入文本,然后再打印匹配的行。

于 2013-10-05T12:23:04.000 回答