Php 使用preg_replace(),如何仅替换短于10个字符的匹配文本? $str=“(搜索:kewyord)”; $str=preg\u replace(“'\(搜索:(.*)”用户界面),“(搜索:)”,$str); //结果->> $str=(搜索:)

Php 使用preg_replace(),如何仅替换短于10个字符的匹配文本? $str=“(搜索:kewyord)”; $str=preg\u replace(“'\(搜索:(.*)”用户界面),“(搜索:)”,$str); //结果->> $str=(搜索:),php,regex,string,preg-replace,Php,Regex,String,Preg Replace,我想改变自己 如果关键字超过10个字符,不要替换它 我该怎么做?谢谢。您可以对正则表达式使用preg\u match,然后对匹配的字符串使用strlen()函数 如果匹配字符串的长度>10,则使用匹配字符串的str\u replace作为第一个参数。您可以对正则表达式使用preg\u match,然后对匹配字符串使用strlen()函数 如果匹配字符串的长度>10,则使用匹配字符串的str\u replace作为第一个参数。要使其匹配最小长度,可以使用数字量词{10,}替换*。但是你想要相反的结

我想改变自己

如果关键字超过10个字符,不要替换它


我该怎么做?谢谢。

您可以对正则表达式使用
preg\u match
,然后对匹配的字符串使用
strlen()
函数


如果匹配字符串的长度>10,则使用匹配字符串的
str\u replace
作为第一个参数。

您可以对正则表达式使用
preg\u match
,然后对匹配字符串使用
strlen()
函数


如果匹配字符串的长度>10,则使用匹配字符串的
str\u replace
作为第一个参数。

要使其匹配最小长度,可以使用数字量词
{10,}
替换
*
。但是你想要相反的结果,所以这样做:

$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,}
替换
*
。但是你想要相反的结果,所以这样做:

$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>)

请参见“限制重复”下的内容。

请不要使用“U”修饰符!(这是一种糟糕的风格,从来没有必要,只会让人困惑)。相反,应用通用的?懒惰修饰符,用于任何您希望懒惰的量词。点也很少需要。这可能就是你想要的:


'/\(搜索:\s+([^)\s]{1,9})\/i'

请不要使用“U”修饰符!(这是一种糟糕的风格,从来没有必要,只会让人困惑)。相反,应用通用的?懒惰修饰符,用于任何您希望懒惰的量词。点也很少需要。这可能就是你想要的:

'/\(搜索:\s+([^)\s]{1,9})\)/i'