我有一个几乎可以正常工作的正则表达式:)
/test[^test<]/
我正在使用prep_replace(),我希望它能找到任何字符串&#39; test&#39;并将其替换为测试,但字符串为&#39; test&lt;&#39; (意味着已经被替换)。
测试文字是: &#34;这是一个测试。这是考试吗?一些测试和测试,但测试&lt; testowanie&#34;
它给了我这个结果: &#34;这是一个测试这是一个测试,一些测试和测试,但测试&lt; testwanie&#34;
所以它正确地排除了字符串&#39; test&lt;&#39;但任何其他比赛替换&#39;测试&#39; +一个额外的角色。
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
方括号表示字符类,^
表示该字符类的否定。最终结果是您匹配序列test
,后跟任何一个非t
,e
,s
,t
或{{1}的字符}}
使用此代码:<
,以匹配序列/test(?!<)/
的所有匹配项,而不是左尖括号。