$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个字符,不要替换。
我该怎么做呢?谢谢。
要匹配最小长度,可以将*
替换为数字量词{10,}
。但是你想要相反的,所以这样做:
preg_replace("''(search: (.{1,9})')'Ui",
参见http://www.regular-expressions.info/repeat.html 限制重复。
请不要使用" U "修饰语!(这是一种糟糕的风格,从来没有必要,只会让人困惑)。相反,应用普遍的?惰性修饰符到任何您想要惰性的量词。点也很少需要。这可能是你想要的:
'/'(search:'s+([^)'s]{1,9})')/i'
您可以在正则表达式中使用preg_match
,然后在匹配的字符串上使用strlen()
函数。
如果匹配的字符串长度> 10,则使用str_replace
作为第一个参数