我想要从数字没有相邻字符(包括短划线)的字符串中替换所有独立数字,例如:
Test 3 string 49Test 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;
但是没有运气,这会回来
Test string 9Test 9test9
遗漏了部分字符串,我想将[0-9]添加到比赛中,但无济于事,我错过了什么,看起来如此简单?
提前致谢
尝试使用单词边界和负面环视作为连字符,例如
$str = preg_replace('/\b(?<!-)\d+(?!-)\b/','',$str);