仅当字符串包含非单词字符时才匹配字符串的正则表达式

时间:2017-01-05 15:48:47

标签: php regex

我需要一个匹配单字符串的正则表达式,只要它包含非单词字符(\ W +)。如果至少有一个单词字符,则它不应该匹配。字符串中保证不存在空格。

Valid examples:
$
&
@!

Invalid examples:
yahoo!
i@world.com

/\W/+没有做我想要的,它验证了上面的例子。 我正在使用的语言是PHP,以防万一。 在此测试https://regex101.com/r/766z4j/2

1 个答案:

答案 0 :(得分:3)

在开头和结尾添加锚点:

/^\W+$/

在PHP中:

if (preg_match('/^\W+$/', $string)) {
    echo "Match\n";
}

你也可以测试否定:

if ( ! preg_match('/\w/', $string)) {
    echo "Match\n";
}