awk - 元字符

Luk*_*man 5 awk regular-expression

在此处输入图片说明

是什么区别[+-][-+]。在我看来,做同样的事情。有什么作用[A-Za-z-]+

在此处输入图片说明

或者我试过了

awk '/[^-]/' contries
Run Code Online (Sandbox Code Playgroud)

我没有期望任何输出。 在此处输入图片说明

Kus*_*nda 10

文本指的是要匹配-括号表达式 中[...]的破折号 ,破折号必须出现在 the 中的第一个或最后一个[...](或紧接在首字母之后^,因为[^-]其中匹配任何不是破折号的单个字符)。

[+-]和之间没有区别[-+]。两者都匹配 a+或 a -

该表达式[A-Za-z-]+将匹配多个(多于零,由于在+之后[...])ASCII 字符 from AtoZ和 from atoz 和 dashes。破折号也可以像[-A-Za-z]+.

请注意,此表达式中的内部两个破折号表示范围,而最后一个破折号(或第一个 in [-A-Za-z]+)表示文字破折号字符

+[...]修改的表达,使得其一个或多个字符从内的匹配[...]。如果没有+,表达式将只匹配一个字符,而不是带有可选破折号的单词。


第二个屏幕截图显示您正在匹配[Y-Zy-z-][Y-Zy-z-]+针对某些数据。

对于这两种模式,您会得到相同的结果,因为这是唯一包含来自 set 的一个或多个字符的行YZyz-。匹配的-字符是子串中的字符-Asia

然后你尝试使用[^-]. 这匹配所有行,因为所有行都包含一些不是-.

  • @LukášAltman 查看更新的答案。目前尚不清楚您要实现的目标。 (2认同)