我有一个字符串,我想与php正则表达式匹配。
$string = "~word1 ~word2 ~word3 word4";
我想匹配所有不是以~sign开头的单词。在php中,我已经尝试过了,但不适用
preg_match("/(?!~)(?<words>[a-zA-Z0-9._])/i", $string, $matches);
var_dump($matches);
但它不起作用。
为此,您可以使用带有负查找的正则表达式:
~(?<!~)bw[w.-]*~
RegEx演示
RegEx详细信息:
(?<!~)
:如果~
位于前一位置,则反向查找将使匹配失败b
:字边界w
:匹配单词字符[w.-]*
:匹配0个或多个字字符或.
或-
您可以在左侧设置空白边界,并且只匹配字符类中允许的字符。
请注意,您必须重复字符类,否则将匹配单个字符。
(?<!S)(?<words>[a-zA-Z0-9._]+)
Regex演示