特定の文字列を検索するための notepad++ 正規表現

バッチテキストの処理方法

メッセージには、a="1" などの固定形式のインジケーターと値が多数あります。前のインジケーター a だけを取り上げると、より複雑になりますが、正規表現を使用すると、より快適になります。

以下の 2 番目の方法を使用してください

検索対象 = (.+?)\" は、等号で始まり引用符とスペースで終わる文字列を検索することを意味します。これにより、最初の引用符を見つけてバッチで \n に置き換えることを回避できます。つまり、各インジケーターは個別にラップされてリストされます。

1. 正規表現は、特定の文字で始まるこのデータ行と一致します。

式:
(?:^|\n)文字位置。*     

例:
(?:^|\n)prompt.* は、prompt で始まる文字列の行を表します。

2. 正規表現は、中間に関係なく、文字列 a で始まり文字列 b で終わる文字と一致します。

式:
a 文字列位置 (.+?) b 文字列位置。多くの文字には特別な意味があり、\ でエスケープする必要があることに注意してください。
例:
to_date で始まり )、
to_date(. +?)\) で終わる文字列と一致します。それは必ず逃げてください)。
注:
上記は (括弧カンマ) で終わります。

3. 純粋な数値文字列のみに一致します

式:
^[0-9]+$
説明:
^: 行の先頭と一致します。
[0-9]+: 1 つ以上の数字と一致します
。 $: 行の末尾と一致します。一般に、数字の行と一致します。
例:
文書内で記号を含まず、全体が数字で埋められている行のみに一致します。

4. 純粋な文字列のみに一致します

式:
^[A-Za-z]+$
説明:
^: 行の先頭と一致します。
[A-Za-z]+: 1 つ以上の文字と一致します。
$: 行の末尾と一致します。一般的に言えば、一致します。文字の行
例:
文書内の、記号を含まない文字でいっぱいの行のみと一致します。

5. 複数の文字列を同時に検索する

式:
a|b
例:
Zhang San|Li Si|Wang Wu
説明:
テキスト内で Zhang San、Li Si、Wang Wu の文字列を含む行も検索します。

正規表現 (.+) と (.+?) の違い

1. 記号の解釈

① () 文字をグループ化し、括弧内の文字を全体として扱います。

② . 単一文字の場合、改行を除くすべての文字に一致します。

③ + 前の文字が存在する必要があり、1 回以上繰り返すことができます

④?部分文字列に続くということは、前の文字列と 1 回または 0 回一致することを意味します。つまり、前の文字は存在してもしなくても構いませんが、存在できるのは 1 回だけです。

.,+,?をフォローしてください。その後、非貪欲モード (遅延モードとも呼ばれます) に入ることを意味します。

通常のデフォルトの貪欲モード

    貪欲なパターン

可能な限り長い文字列と一致します。貪欲一致では、最初に文字列全体が一致するかどうかがチェックされ、一致しない場合は、文字列の最後の文字が削除されて、再度一致が試行されます。このサイクルは、一致が成功するまで続きます。

    非貪欲モード

可能な限り短い文字列と一致します。遅延マッチングとは、左の最初の文字から右に向かってマッチングし、最初に一致するかどうかを確認し、一致しない場合は右側の次の文字を追加して再試行します。このサイクルは、一致が成功するまで続きます。
3. 例

文字列「<1><123>」が存在します

①正規表現 <(.+)> は、ルール <string> に適合する最長の内容を可能な限り一致させ、最終的に "<1><123>" を返すことを意味します。

②正規表現<(.+?)>は、ルール<文字列>に適合する最短の内容を可能な限り一致させ、最終的に"<1>"を返すことを意味します

著作権に関する声明: この記事は CSDN ブロガー「Bitup_bitwin」によるオリジナル記事であり、CC 4.0 BY-SA 著作権規約に従っています。転載する場合は、元のソースリンクとこの声明を添付してください。
元のリンク: https://blog.csdn.net/weixin_44259499/article/details/129342053

おすすめ

転載: blog.csdn.net/qq_41638825/article/details/131891476