Mus*_*00m 2 php regex preg-replace
可能的重复:
正则表达式:匹配除
我需要您的帮助来在 PHP 中使用正则表达式来否定选择。所以我有一个像这样的字符串:“你好,我的名字是汤姆”
我需要做的是删除这个字符串中的所有内容,女巫不是“tom”或“jack”或“alex”,所以我尝试了:
$MyString = "Hello my name is tom"
print_r(preg_replace('#^tom|^jack|^alex#i', '', $MyString));
Run Code Online (Sandbox Code Playgroud)
但这不起作用...
你能帮我吗?谢谢
如果您想删除除某些内容之外的所有内容,也许最好以相反的方式完成:仅捕获某些内容?例如...
$testString = 'Hello my name is tom or jack';
$matches = array();
preg_match_all('/\b(tom|jack|alex)\b/i', $testString, $matches);
$result = implode('', $matches[0]);
echo $result; // tomjack
Run Code Online (Sandbox Code Playgroud)
您尝试做的是使用字符类语法([^s]将匹配除 s 之外的任何字符)。但这不适用于一系列字符,没有“词类”之类的东西。)