正規表現を使用して、次の型属性を持つパターンを表現したいと思います。
1)数値の連続したシーケンスで構成されます。シーケンスの長さは1以上です。
2) 上記の順序の最初の数値の前、上の順序の最後の数値の後、または前後の数字以外の文字が 1 つ以上あります。したがって、正規表現は次の例と一致する必要があります。
A123
A123B
#A123BNNN
.123
-123+
一方、AB123B123
2つの数値のシーケンスがあるため、上記のパターンの範囲外です。この質問では、このシナリオを考慮する必要はありません。私はこれを明らかにしたことを願っています。
ベストアンサー1
これはあなたが望むことを行うようですgrep
:
$ grep -P "^\D+\d+$|^\d+\D+$|^\D+\d+\D+$" data.txt
追加の行を追加すると、data.txt
これが必要に応じて機能することを示しているようです。
はい
$ cat data.txt
&320
*10-
AB123-
1234
ABCDEF
a20d34
12a12
32q5858j
' 2323 '
234aaa
#A123BNNN
.123
-123+
実行例:
$ grep -P "^\D+\d+$|^\d+\D+$|^\D+\d+\D+$" data.txt
&320
*10-
AB123-
' 2323 '
234aaa
#A123BNNN
.123
-123+
grep
スイッチに慣れていない場合は、 -P
以下のリソースを参照してください。このスイッチを使用すると、grep
Perlで利用可能なほとんどの正規表現エンジンを使用できます。