正则表达式同时匹配带连字符和非带连字符的单词

时间:2016-06-09 14:36:40

标签: php regex

您好我有以下字符串:

e-bgp-ip@2016-03-21.y:688: error: bad value "redi-bfg" (should be if-feat-ex)

我需要将字符串与正则表达式匹配。但是,字符串可以是连字符和非连字符,因此它也可以是

e-bgp-ip@2016-03-21.y:688: error: bad value "redibfg" (should be if-feat-ex)

我可以使用

捕获非连字符版本
/^.*? error: bad value \"\w+\" \(should be *.*$/m

我试图替换这个正则表达式匹配的任何一行,这是我对另一行的一个例子:

$line = preg_replace('/^.*? key \"\w+\" not in order, *.*$/m', '', $line);

但是我需要一个能够捕获第一个例子和第二个例子的正则表达式,任何人都有任何想法我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

只需将\w替换为包含短划线的字符类:[\w-]

$line = preg_replace('/^.*? key "[\w-]+" not in order, *.*$/m', '', $line);