バッチテキストの処理方法
メッセージには、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