0

3桁と他の3文字の行を見つける必要があります。次の正規表現を使用すると思いました。

^\d{3}\D{3}$

ただし、次のサンプルテキストファイルを取得して、上記の正規表現を実行します(テキストには空の行が含まれている必要があります)。

1
12
123xxx
123y


aaabb

問題は、2つの一致があることです:123xxx(これは問題ありません)だけでなく、123yも一致します!その理由は、「y」+行の終わり+次の行の始まりも一致しているためだと思います。

行の開始と終了を\Dで無視し、位置ではなく文字のみに一致するように正規表現エンジンに指示するにはどうすればよいですか?

4

3 に答える 3

1

$UltraEditでの動作は、[単語全体に一致]がオンになっているかどうかによって異なります。必要な動作を取得するには、そのオプションがチェックされていることを確認する必要があります。正規表現を変更する必要はありません。

于 2012-09-24T15:52:29.423 に答える
0

これを試して :

^\d{3}[\S]{3}$

3桁の行の後に空白文字ではない3文字が続く行に一致します。

于 2012-09-24T15:43:51.787 に答える
0

多分:

/^\d{3}\D{3}$/m

m手段_

文字列を複数行として扱います。つまり、「^」と「$」を文字列の開始または終了の一致から、文字列内の任意の行の開始または終了の一致に変更します。

http://perldoc.perl.org/perlre.html

UltraEditについて正確にはわかりませんが、似たようなものになると思います。

于 2012-09-24T15:42:32.103 に答える