草庐IT

preg-match

全部标签

php - 如何使用 preg_replace 获取替换文本?

我在PHP中使用preg_replace函数,并尝试用bit.ly缩短的链接替换用户提交的url:$comment=preg_replace('/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/i','',$strText);这将只显示评论并“清除”url。问题是如何从文本中获取URL并稍后附加它? 最佳答案 preg_replace_callback()来自php.net的示例:定义一个回调函数来替换URL。它将接收匹配项作为参数,并在内部根据这些匹配项形成一个替换字符串。

php - preg_match_all( ) 在不同的服务器上表现不同

下面的代码在我的PC上的XAMPP上运行完美,但在我新买的VPS上不起作用。它使我的代码崩溃。preg_match_all("/$regex/siU",$string,$matches,PREG_SET_ORDER);这应该只是从HTML中获取链接和标题。以前,今天也出现过类似的正则表达式问题。代码在本地服务器上运行良好,但在vps上创建“连接已重置”错误。该问题是由一些注释的html(其中包含php代码)引起的,使用以下代码将其删除以优化输出,但即使连接重置的问题已解决,HTML在浏览器源代码中仍然有注释。$string=preg_replace('//','',$string);那

php - 正则表达式帮助 : how to match only either pattern in a regex that contains "or" operator?

我正在使用php的preg_replace().基本上我有2种可能的字符串匹配:你好现实世界问候这是我希望完成的:HelloRealWorldGreetings规则解释:如果字符串包含空格,插入在第一个空格字符之后。如果字符串不包含空格(一个单词),则插入就在字符串的中间(+/-如果奇数字符计数)。到目前为止,我已经想出了一个长期有效的解决方案:",$str,1):preg_replace("/.{".round(strlen($str)/2)."}/","$0",$str,1);?>但是,我相信它可以通过一个更短、更优雅的正则表达式来完成,只有一个preg_replace()。打电话

php - 如果...否则发出 : removing the matched variable

我是编码新手,无法建立简单逻辑的想法..好的,我写了一个代码先看看:$mnaTotalCharectars:$c_mna";}$go[0]="January";$go[1]="February";$go[2]="March";$go[3]="April";$go[4]="May";$go[5]="June";$go[6]="July";$go[7]="August";$go[8]="September";$go[9]="October";$go[10]="November";$go[11]="December";$fo="October";$i=0;for($i=0;$i我想做的是删除

php - preg_replace file_get_contents 中不包含单词的所有链接

这个问题在这里已经有了答案:Regularexpressiontomatchalinethatdoesn'tcontainaword(33个答案)关闭9年前。我正在将一个页面读入一个变量,我想禁用地址中不包含单词“remedy”的所有链接。到目前为止,我的代码获取了所有链接,包括带有“补救措施”的链接。我做错了什么?$page=preg_replace('~(.*?)~i','$1',$page);--解决方案--$page=preg_replace('~(.*?)~i','$2',$page);

php - Doctrine DQL 无效参数编号 : number of bound variables does not match number of tokens

我在这个查询中收到错误无效的参数编号:绑定(bind)变量的数量与标记的数量不匹配。我真的没有看到问题,有什么想法吗?publicfunctiongetByPartial($q,Company$company){$query=$this->createQueryBuilder('u')->join('u.company',':company')->where('u.firstNameLIKE:q')->orWhere('u.lastNameLIKE:q')->setParameters(array('company'=>$company,'q'=>'%'.$q.'%'))->getQu

PHP preg_replace string – 括号内的内容

我正在努力理解PHPpreg_replace,想知道您是否可以提供任何指导,说明如何弄清楚如何将单词保留在括号内但从该字符串中删除其他所有内容:Events(Road)所以它会返回:Road我渴望学习,所以不仅需要答案,还需要了解它是如何实现的。我知道如何删除括号(和括号)内的单词:trim(preg_replace('/\s*\([^)]*\)/','','Events(Road)')干杯,R 最佳答案 一种方法是捕获括号内的字符,然后用它替换其他所有字符。$1是对第一个捕获组()的反向引用:preg_replace('/.*\(

php - preg_match 的正则表达式

这个问题在这里已经有了答案:HowdoyouparseandprocessHTML/XMLinPHP?(31个答案)关闭7年前。我得到以下字符串:ElFTkSuQmCC"alt=""width="auto"height="auto"/>XX,X%并且想要“XX,X”,所以我构建了以下正则表达式:/QmCC"alt=""width="auto"height="auto"\/>\n(.*?)%/我在线测试了它并找到了XX,X的匹配项,但是当我尝试使用以下代码在php中执行它时preg_match_all('/REGEX/',$string,$match);不匹配。你有什么建议吗?字符串肯定

PHP - Preg_match 最短匹配

我正在尝试从此字符串中获取“内容”:$string="startstartcontentend";像这样使用preg_match:preg_match('/start(.*?)end/',$string,$matches);echo$match[1];但是,问题是$matches[1]返回startcontent而不仅仅是content因为有两个start在$string中(也许更多)如何使用preg_match只获取content部分? 最佳答案 使用否定前瞻:$string="startstartcontentend";preg

用于分割字符串的 PHP preg_match_all 正则表达式

任何人都可以帮助完成我的正则表达式吗?我的字符串格式如下:{p:19}Ja?DumöchtestzurKönigin?{p:20}Hmm...DubistgekommenumdenTitelKriegerinzuerhalten?Verstehe.DasistganzschöntapferfürsoeinejungeDame.DieKöniginwirdsicherauchsehrüberraschtsein.{t:19}Bittesehr,gehdirekthinein.{t:20}TreibeDichhiernichtherum,wennDuhiernichtszusuchenha