$str = "(search: kewyord)";
$str = preg_replace("'\(search: (.*)\)'Ui","(search: <a href=\"search.php?q=\\1\"><b>\\1</b></a>)",$str);
//result->>
$str = (search: <a href=\"search.php?q=keyword\">kewyord</a>)
我想改变为
如果关键字超过10个字符,请不要替换它。
我该怎么做?感谢。
答案 0 :(得分:3)
要使其与最小长度匹配,您可以使用数字量词*
替换{10,}
。但你想要反对,所以这样做:
preg_replace("'\(search: (.{1,9})\)'Ui",
答案 1 :(得分:2)
请不要使用'U'修饰符! (这是不好的风格,从来没有必要,只是为了混淆)。相反,应用通用?对你想要懒惰的任何量词的懒惰修饰符。这个点也很少需要。这可能就是你想要的:
'/\(search:\s+([^)\s]{1,9})\)/i'
答案 2 :(得分:1)
您可以将preg_match
与正则表达式一起使用,然后在匹配的字符串上使用strlen()
函数。
如果匹配字符串的长度&gt; 10然后使用匹配字符串的str_replace
作为第一个参数。