括弧で囲まれた文字セットで構成される正規表現を呼び出します。キャラクタークラス;含まれる文字と一致します。たとえば、、、または
[AEIOU]
文字を一致させます。A
E
I
O
U
ハイフンを使用して、文字クラス内の文字範囲を短縮できます。ハイフンのすぐ左側の文字は範囲の始まりを定義し、右側の文字は末尾を定義します。したがって、
[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-]+
一致します。+
[...]
A
Z
a
z
そしてダッシュ。に示すようにダッシュを前に配置することもできます[-A-Za-z]+
。
この式では、内側の2つのダッシュは次のことを意味します。範囲最後のダッシュ(または最初のダッシュ[-A-Za-z]+
)は次のことを意味します。文字通りのダッシュ文字。
afterは一致するように+
式を変更します。それ以外の場合、式はオプションのダッシュを持つ単語ではなく、正確に1文字に一致します。[...]
[...]
+
2番目のスクリーンショットは、[Y-Zy-z-]
一致する[Y-Zy-z-]+
いくつかのデータを示しています。
両方のモードで同じ結果が得られます。これは、セット内の1つ以上の文字を含む唯一の減数によるものですYZyz-
。一致する文字は-
部分文字列の文字です-Asia
。
その後、この一致を使用しようとします[^-]
。みんななぜなら、すべての行に-
。