1

Windows 用の最新バージョンの Notepad++ 6.3.2 を実行しています。次のサンプル 2 行のテキスト ファイルで、「改行に一致」チェックボックスをオンにせずに「正規表現」を使用して「検索」を実行しようとしています。

hello
world

「改行に一致」がチェックされていないため、検索パターンhello.*worldは何にも一致しません(チェックボックスをオンにすると一致します)。hello\s*worldただし、 「改行に一致」がチェックされていないため、パターンは上記の2行に一致しますが、これは少し予想外です。しばらく前に使用した古いバージョンには、その機能/バグがなかったと思います。末尾の空白文字を使用して、単一行のみで一致させたい場合は少し面倒です。

それは期待されていますか?

4

2 に答える 2

2

私はそれを少し説明しようとします:

これは正規表現のフラグであるmatches newlines必要があります(100%確実ではありません。メモ帳のソースコードを確認していません) 。DOTALLつまり、ドット.は改行にも一致します。

あなたが持っていたものは\s\s空白文字(スペース、タブ、改行)に一致することを意味します。だから、それはそのように機能します。

于 2013-07-24T11:09:56.823 に答える
1

インターフェイスを見ると、「。改行に一致」と表示されます

「hello\sworld」の 2 番目のケースでは、「.」を使用しなくなりました。正規表現で。

\s は、\r または \n 文字と一致することを意図しています。

おそらく、2つ以上の空白に一致するが改行には一致しないように正規表現をわずかに適応させるとうまくいくでしょう

つまり、「hello[ \t]*world」を使用しますか?

于 2013-07-24T11:10:54.867 に答える