我正在寻找一个多字节函数来替换preg_match_all()。我需要一个能给我一组匹配字符串的程序,例如preg_match()中的$matches参数。函数mb_ereg_match()似乎没有这样做——它只给我一个bool值,指示是否有任何匹配项。查看mb_*函数page,我没有随手看到任何可以替代preg_match()功能的东西。我用什么?编辑我是个白痴。我最初发布这个问题要求替换preg_match,当然是ereg_match。然而,这两个都只返回第一个结果。我想要的是preg_match_all的替代品,它返回所有匹配文本。但无论如何,正如hakre指出的那样,u修饰符在
我正在使用一个使用的库eregi($match="^http/[0-9]+\\.[0-9]+[\t]+([0-9]+)[\t]*(.*)\$",$line,$matches)但由于eregi现在已被弃用,我想将上面的内容转换为preg_match。我试过如下preg_match($match="/^http/[0-9]+\\.[0-9]+[\t]+([0-9]+)[\t]*(.*)\$/i",$line,$matches)但它会抛出一个错误,提示Unknownmodifier'['infilename.php有什么解决这个问题的想法吗?谢谢 最佳答案
所以我使用preg_match来获取#之后的任何文本,直到字符串中的空格。但是,如果它在字符串中多次出现,它只会返回第一个。这是我目前所拥有的$text='#demo1#demo2sometext#blah2';$check_hash=preg_match("/([#][a-zA-Z-0-9]+)/",$text,$hashtweet);foreach($hashtweetas$ht){echo$ht;}echo$ht;输出#demo1#demo1当它应该输出前面带#的所有3个单词时。非常感谢任何帮助。 最佳答案 您想使用preg_
我有类似这个的字符串:{{something1}}something2{{something3}}something4如何使用preg_match()函数只匹配“something1”?我试过:preg_match("/\{\{(.*)\}\}/si",$content,$matches);但是这个匹配太多了,返回something1}}something2{{something3我尝试将\b添加到模式中,但也没有得到我想要的结果。你能帮我解决这个问题吗? 最佳答案 使用非贪婪修饰符?:preg_match("/\{\{(.*?)\
与preg_match($pattern,$subject,$matches,PREG_OFFSET_CAPTURE);是否可以反向搜索字符串?即,返回主题中模式最后一次出现的位置,类似于strripos。或者我是否必须使用preg_match_all返回所有匹配项的位置并使用$matches的最后一个元素? 最佳答案 PHP没有从右到左搜索字符串的正则表达式方法(如.NET)。有几种可能的方法可以解决这个问题(此列表并不详尽,但它可能会为您自己的解决方法提供想法):使用preg_match_all带有PREG_SET_ORDER标
functionisUserID($username){if(preg_match('/^[a-z\d_]{2,20}$/i',$username)){returntrue;}else{returnfalse;}}简单的..,我有这个,你能解释一下它检查的是什么吗?我知道它会检查用户名的长度是否在2-20之间,还有什么?谢谢 最佳答案 它搜索仅包含字母数字和下划线字符的文本,长度为2到20个字符。/^[a-z\d_]{2,20}$/i|||||||||||||||||||||i:caseinsensitive|||||||||/:e
我正在尝试做一个PHP正则表达式,但找不到正确的方法...假设我有这个字符串:“你好,我的{{nameisPeter}}and{{Iwanttoeatchocolate}}”我想取{{和}之间的部分但是如果我使用preg_match("/\{\{(.*)?\}\}/",$string)它只返回一个字符串“{{nameisPeter}}and{{Iwanttoeatchocolate}}”我怎么知道取}}的第一个巧合?谢谢 最佳答案 使用"/{{(.*?)}}/"表达式".*"是贪心的,尽可能多地获取字符。如果您使用".*?"会使用尽
我想测试一个字符串,看看它是否包含某些单词。即:$string="Theraininspainiscertainasthedryontheplainisoveranditisnotclear";preg_match('`\brain\b`',$string);但是那个方法只能匹配一个词。如何检查多个单词? 最佳答案 类似于:preg_match_all('#\b(rain|dry|clear)\b#',$string,$matches); 关于php-preg_match多个单词,我们在
我不想要preg_match_all...因为表单字段只允许数字和字母...只是想知道正确的语法是什么...没什么特别的……只需要知道只查找数字和字母的preg_match语句的正确语法。有点像preg_match('/^([^.]+)\.([^.]+)\.com$/',$unit)但这也不会寻找数字...... 最佳答案 如果你只想确保一个字符串只包含字母数字字符。A-Z、a-z、0-9不需要使用正则表达式。使用ctype_alnum()文档中的示例:上面的例子会输出:ThestringAbCd1zyZ9consistsofall
如何使用preg_match查看是否有特殊字符[^'£$%^&*()}{@:'#~?>,;@|\-=-_+-¬`]存在于字符串中? 最佳答案 [\W]+将匹配任何非单词字符。但要仅匹配问题中的字符,请使用:$string="sadw$"if(preg_match("/[\[^\'£$%^&*()}{@:\'#~?>,;@\|\\\-=\-_+\-¬\`\]]/",$string)){//thisstringcontainatleastoneofthese[^'£$%^&*()}{@:'#~?>,;@|\-=-_+-¬`]charac