1

notepadd ++を使用して、かなりの数の名前を検索して置き換えています。

私はこれらを回す必要があります

 Neil Kilkenny
 Mateja Kežman
 Kim Do-Heon

これに:

 Neil,Kilkenny
 Mateja,Kežman
 Kim,Do-Heon

これまでのところ、私は持っています:

 search: ([A-Z]+)([a-z]+) ([A-Z]+)([a-z]+)
 replace: $1,$2

問題: 私の正規表現は名前と一致しませž-

使用することを考えまし.たが、これらの特殊文字がいくつあるのか、どこで発生するのかわかりません。

4

5 に答える 5

3

これを試してください:

([^ \n\t\r]+) ([^ \n\t\r]+)

( の後のスペースを忘れないでください^)

于 2012-12-19T15:55:22.617 に答える
2

あなたが確信しているのは、名前がスペースで区切られ、名が最初に来るということだけだと思います。そのため、 を使用しても問題ないと思います.

([^\s]+) (.+)

-また-

([\S]+) (.+)

(2番目のより読みやすいソリューションについて@Simonに感謝します)。

これにより、スペースの前のすべてを取得してグループに入れ、スペースの後のすべて (より多くのスペースを含む) をグループに入れます。


OPがグループの順序を切り替えていないことに気付きました。その場合、単純な検索と置換で<space>問題なく機能します。ただし、提供されている正規表現を使用すると、必要に応じて実行<last name>, <first name>できます。

参考までに、Notepad++ は PCRE を使用します。http://perldoc.perl.org/perlre.html

于 2012-12-19T15:55:31.820 に答える
1

これらのスペースがすべて残っている場合は、単一のスペースを検索して (または[ ]+、スペースが連続している可能性があることが心配な場合)、 に置き換え,ます。シングル スペース オプションの場合、正規表現モードは必要ありません。

于 2012-12-19T15:58:21.060 に答える
0

この正規表現は機能しているようです (グループを 4 から 2 に減らしました):

    ([A-Z]+[a-z]+) ([A-Z]+[a-z]+)
于 2012-12-19T15:56:59.913 に答える
-1

一致を取得するには、\n代わりに使用します。
正規表現:([a-zA-Z]+)\s([a-zA-Z]+)
置換:\1,\2

于 2012-12-19T15:53:38.420 に答える