awk - メタ文字

awk - メタ文字

括弧で囲まれた文字セットで構成される正規表現を呼び出します。キャラクタークラス;含まれる文字と一致します。たとえば、、、または[AEIOU]文字を一致させます。AEIOU

ハイフンを使用して、文字クラス内の文字範囲を短縮できます。ハイフンのすぐ左側の文字は範囲の始まりを定義し、右側の文字は末尾を定義します。したがって、[0-9]任意の数字と一致し、[a-zA-Z][0-9]文字の後に数字が続くものと一致します。左右のオペランドがない場合、文字クラスのハイフンはそれ自体を表すため、文字クラスの合計はaまたはaと[+-]一致します。文字クラスは、ハイフンを含む単語と一致します。[-+]+-[A-Za-z-]+

[+-]これらとそしての違いは何ですか[-+]?私が見るにも同じことをしているようです。何をすべきですか[A-Za-z-]+

$ awk '/[Y-Zy-z-]/' countries
India     1267 746  -Asia
$ awk '/[Y-Zy-z-]+/' countries
India     1267 746  -Asia
U         8649 275  Asia
Canada    3852 25   North America
China     3705 1032 Asia
USA       3615 237  North America
India     1267 746  -Asia
Mexico    762  78   North America
France    211  55   Europe
Japan     144  120  Asia
England   94   56   Europe

それとも私がやった

awk '/[^-]/' countries

私は何の結果も期待していません。

$ awk '/[^-]/ countries
U         8649 275  Asia
Canada    3852 25   North America
China     3705 1032 Asia
USA       3615 237  North America
India     1267 746  -Asia
Mexico    762  78   North America
France    211  55   Europe
Japan     144  120  Asia
England   94   56   Europe

ベストアンサー1

テキストには、-括弧内の式のダッシュと一致させるには、ダッシュが最初または最後に表示される必要があります[...](またはダッシュではなく単一文字が一致する場合は、最初の文字の[...]直後に表示する必要があります)。^[^-]

[+-]間に違いはありません[-+]。どちらもa+またはaと一致します-

この式は、からまでの複数の(次のためにゼロより大きい)ASCII文字と[A-Za-z-]+一致します。+[...]AZaz そしてダッシュ。に示すようにダッシュを前に配置することもできます[-A-Za-z]+

この式では、内側の2つのダッシュは次のことを意味します。範囲最後のダッシュ(または最初のダッシュ[-A-Za-z]+)は次のことを意味します。文字通りのダッシュ文字

afterは一致するように+式を変更します。それ以外の場合、式はオプションのダッシュを持つ単語ではなく、正確に1文字に一致します。[...][...]+


2番目のスクリーンショットは、[Y-Zy-z-]一致する[Y-Zy-z-]+いくつかのデータを示しています。

両方のモードで同じ結果が得られます。これは、セット内の1つ以上の文字を含む唯一の減数によるものですYZyz-。一致する文字は-部分文字列の文字です-Asia

その後、この一致を使用しようとします[^-]みんななぜなら、すべての行に-

おすすめ記事