2013-06-30 6 views
44

簡単な質問:2つのキャプチャグループを与える正規表現^(?:\b[A-Z]+\b\s+)+(.*)\d{8}があります。キャプチャグループ1を空白に置き換えたいと思います。それは可能ですか?regexp capture-groupをNotepad ++で置き換えますか?

交換する場合:\1TEST TESTER Hello, world. Another word here. 75793250 - >をHello, world. Another word hereに置き換えます。私はこの結果が欲しい:TEST TESTER 75793250\1を空白に置き換える。

+3

ええと、私が見る限り、キャプチャグループは1つだけです...? '(?:...)'は非捕捉グループです。 – Jerry

+0

2つ、0と1があると思いましたか?グループ0はフルマッチですか?とにかく、Notepad ++が1と呼ぶグループを空白で置き換えたいと思います。 – Kaah

+0

私は '\ 1'と置き換えて' TEST TESTER Hello、world 'を置き換えます。ここに別の言葉。 75793250' - > 'Hello、world。ここの別の言葉。私はこの結果を望んでいます: 'TEST TESTER 75793250'。 '\ 1'を空白に置き換える。 – Kaah

答えて

74

は、使用してみてください:

^((?:\b[A-Z]+\b\s+)+)(?:.*)(\d{8}) 

そしてと交換してください:

\1\2 
+0

ありがとうございました! :) – Kaah

+1

@Kaahよろしくお願いします! :)また、私のメモ帳のバージョンを更新するように私に思い出させてください!私はxDで6.1.8を持っていた – Jerry

7

どうしてそうするのですか?

このよう

正規表現、それを実行します:^(\b[A-Z]+\b\s+)+(?:.*)(\d{8})

と交換してください:\1 \2

+0

ありがとうございますが、Notepad ++ 6.3.3で 'Invalid regular expression'と表示されます。 Anirudhを改訂してください。 – Kaah

+1

@Kaah oops..corrected .. – Anirudha

+0

この正規表現は 'TESTER 75793250'を返します。繰り返しグループをキャプチャすると、最後にマッチする文字列しか得られないからです。別の例:文字列 'abcd'を正規表現'(。)+ 'と置換文字列' \ 1'に置き換えると、文字列 'd'が返されます。 – steve9164

関連する問題