匹配字符串与正则表达式

时间:2014-04-23 23:34:42

标签: regex grep

我一直把头撞在墙上寻找匹配任何字符串的正则表达式:

--7928ae02-A--
--7928ae02-B--
--7928ae02-F--
--7928ae02-H--
--7928ae02-Z--

字符串是两个破折号,任何字母或数字的8个字符,破折号,大写的A-Z和两个破折号。

以下是我所处的任何例子:

grep '^--[a-fA-F0-9]{8}-[A-Z]--$'

2 个答案:

答案 0 :(得分:2)

这可能有效

grep -E -- '^--[[:alnum:]]{8}-[[:upper:]]--$'

答案 1 :(得分:0)

您可能应该使用

grep -P '^--[a-fA-F0-9]{8}-[A-Z]--$'
带有-P-E标记的

-P将正则表达式解释为Perl正则表达式,-E以扩展模式运行正则表达式。这个正则表达式允许各种铃声和口哨声像{} - 运算符。

在你给定的测试中运行它们,它们都会通过。