正規表現を使用した文字列表現(修正済み)

正規表現を使用した文字列表現(修正済み)

正規表現を使用して、次の型属性を持つパターンを表現したいと思います。

1)数値の連続したシーケンスで構成されます。シーケンスの長さは1以上です。

2) 上記の順序の最初の数値の前、上の順序の最後の数値の後、または前後の数字以外の文字が 1 つ以上あります。したがって、正規表現は次の例と一致する必要があります。

A123
A123B
#A123BNNN
.123
-123+

一方、AB123B1232つの数値のシーケンスがあるため、上記のパターンの範囲外です。この質問では、このシナリオを考慮する必要はありません。私はこれを明らかにしたことを願っています。

ベストアンサー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以下のリソースを参照してください。このスイッチを使用すると、grepPerlで利用可能なほとんどの正規表現エンジンを使用できます。

引用する

おすすめ記事