use*_*334 6 php regex preg-replace
我想要从数字没有相邻字符(包括短划线)的字符串中替换所有独立数字,例如:
测试3弦49测试49test9 9
应该返回Test string 49Test 49Test9
到目前为止,我一直在玩:
$str = 'Test 3 string 49Test 49test9 9';
$str= preg_replace('/[^a-z\-]+(\d+)[^a-z\-]+?/isU', ' ', $str);
echo $str;
Run Code Online (Sandbox Code Playgroud)
但是没有运气,这会回来
测试字符串9Test 9test9
遗漏了部分字符串,我想将[0-9]添加到比赛中,但无济于事,我错过了什么,看起来如此简单?
提前致谢
尝试使用单词边界和负面环视作为连字符,例如
$str = preg_replace('/\b(?<!-)\d+(?!-)\b/', '', $str);
Run Code Online (Sandbox Code Playgroud)