![説明](https://rvso.com/image/1417415/%E8%AA%AC%E6%98%8E.png)
検索して実験してみましたが、わかりませんでした。
Notepad++ には次のような行があります:
102.
または
12
そして、行全体(つまり、\n\r が必要だと思います)とこれらの種類の行をすべて削除したいのですが、どうすればいいでしょうか?(小数点が 1 桁なのか、2 桁なのか、3 桁なのか、またはその後にピリオドが付いているかどうかはわかりません)。
答え1
要件が何であるか (つまり、削除する行の可能な内容が何であるか) が 100% 明確ではありませんが、行が 1 から 3 までの数字で始まり、オプションでピリオドが続き、行の先頭または末尾に他に何もないという前提で正規表現を作成しました。
何を探すか:^\d{1,3}\.?\r?\n?
置換: (空白)
以下のデータセットでテスト済み
102.
102
12
12
1.
1
9999
ab21.
8442.
残される
9999
ab21.
8442.
説明
^
は、行の先頭にのみ一致する特殊文字です。これは、パターンが単に長い行の末尾にないことを確認するためのものです。
\d
任意の数値 (つまり、0 ~ 9) と一致させるために使用されます。
{1,3}
は、前のステートメント (この場合は\d
) を変更するために使用され、そのステートメントに一致する最小回数と最大回数を指定するために使用されます。したがって、この行は、1 回から 3 回 (両端を含む) までの数字に一致することを意味します。
\.
ドット文字と一致するために使用されます。.
は正規表現の特殊文字で、任意の文字と一致するために使用されます (デフォルトでは改行を除くが、Notepad++ にはこの動作を変更するオプションがあります)。このため、これをバックスラッシュでエスケープして、.
「一致するパターン」ではなく.
「文字」として認識されるようにする必要があります。
?
は と同様に最後のステートメントを変更するために使用されます{1,3}
が、今回は前のステートメント ( [.]
) がオプションであることを示すために使用されます (技術的には 0 回から 1 回の間で一致させることを示していますが、最終結果は同じです)。
\r?\n?
は、すでに述べたように、新しい行を一致させるために使用されます。これがなくても正規表現は機能しますが、行は削除されず、クリアされるだけです(空白行が残ります)。 と の両方を\r
オプションにすることで\n
、Windows、Linux、Mac 間で移植可能になります。
最後に、フィールドを空白のままにしておく理由は、Replace with :
削除する行に何も戻らないようにするためです。
これがあなたが探していたものであることを願います。もしそうでなかったとしても、正しい方向を指し示してくれるでしょう。