草庐IT

php - PHP 中的正则表达式 : find the first matching string

我想在非常非常长的文本中找到第一个匹配的字符串。我知道我可以使用preg_grep()并获取返回数组的第一个元素。但是如果我只需要第一场比赛(或者我知道提前只有一场比赛),这样做效率不高。有什么建议吗? 最佳答案 preg_match()?preg_match()returnsthenumberoftimespatternmatches.Thatwillbeeither0times(nomatch)or1timebecausepreg_match()willstopsearchingafterthefirstmatch.preg_m

php - 这是 php 中的快速进程 strpos()/stripos() 或 preg_match()

我只想知道在php中,strpos()/stripos()或preg_match()函数中哪一个会更快。 最佳答案 我找到了thisblog已经对你的问题做了一些测试,结果是:strpos()比preg_match()快3-16倍stripos()比strpos()慢2-30倍stripos()比preg_match()快20-100%无大小写修饰符“//i”在preg_match()中使用正则表达式并不比使用正则表达式快长字符串在preg_match()中使用utf8修饰符“//u”使其慢2倍使用的代码是:

php - 尝试在 Preg_Match 中查找正斜杠

我已经搜索了几个小时,试图找到解决这个问题的方法。我正在尝试确定REQUESTURI是否合法并从那里分解它。$samplerequesturi="/variable/12345678910";判断是否合法,第一段variable只有字母,长度可变。第二部分是数字,总共应该有11个。我的问题是转义正斜杠,以便它在uri中匹配。我试过:preg_match("/^[\/]{1}[a-z][\/]{1}[0-9]{11}+$/",$samplerequesturi)preg_match("/^[\\/]{1}[a-z][\\/]{1}[0-9]{11}+$/",$samplerequestu

PHP:Preg_match_all 将 html 提取到字符串中

我有这样的html:Tagged:sports,entertain,funny,comedy,automobile,moretags.如何将运动、娱乐、搞笑、喜剧、汽车提取到字符串中我的phppreg_match_all看起来像这样:preg_match_all('/(.*?),/',$this->page,$matches);echovar_dump($matches);echoimplode('',$tags);它不起作用。 最佳答案 我不确定您是如何从中获取$this->page的,但是以下内容应该会如您所料:http://i

php - 在大写字母前加下划线

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion如何在字符串中所有大写字母前添加下划线(_)?PrintHello将变为:Print_HelloPrintHelloWorld将变为:Print_Hello_World

php - preg_match 在第二个斜杠后向后看

这是我的字符串:stringa/stringb/123456789,abc,cde在preg_match之后:preg_match('/(?输出是:stringb/123456789如何更改我的preg_match以在第二个斜线(或最后一个斜线之后)后提取字符串?期望的输出:123456789 最佳答案 您可以将/以外的任何内容匹配为/(?[^\/,]*否定字符类匹配除,或\以外的任何字符RegexDemo示例preg_match('/(?123456789 关于php-preg_mat

PHP难的preg_match

我正在尝试管理我用于XBMC的个人Web服务器上的一些文件,但所有文件(来自YIFY的电影)的名称如下Jumanji.1995-720p.YIFY.mp4Silver.Linings.Playbook.2012.1080p.x264.YIFY.mp4AmericanHustle(2013)1080pBrRipx264-YIFY.mp4请注意,有些项目用.分隔,而其他项目则用_或空格分隔。所以我需要做的是将文件preg_match到一个数组(title,year,quality)我只知道一些preg_match基础知识。但这对我来说太难了。例如echoextract('AmericanH

PHP preg_match 特定字段值

我想获取不断更改其值的字段的ID或名称。例子:我的表单中有这些字段:我想获取第一个字段的ID或名称,但它一直在变化,例如:模式是始终是5个数值。我已经试过了,但没有成功:preg_match('/(\d)id=\s*([0-9]{5})\s*(\d+)/',$html,$fieldId); 最佳答案 试试这个:preg_match('/\bid\s*=\s*"(\d{5})"/',$html,$fieldId);单词边界的转义序列是\b,而不是\d。没有理由在\b周围使用捕获组,因为它是零长度匹配。您没有匹配ID周围的双引号。您可以

PHP:如何用破折号和括号之间的所有内容拆分字符串。 (preg_split 或 preg_match)

几天来我一直在思考这个问题,但似乎没有得到想要的结果。例子:$var="SomeWords-OtherWords(MoreWords)Dash-Binded-Word";期望的结果:array([0]=>SomeWords[1]=>OtherWords[2]=>MoreWords[3]=>Dash-Bound-Word)我能够使用preg_match_all使这一切正常工作,但随后“Dash-Bound-Word”也被分解了。尝试将它与周围的空格匹配是行不通的,因为它会破坏除破折号之外的所有单词。我使用的preg_match_all语句(它也分解了破折号绑定(bind)的词)是这样的:

php 从字符串中提取表情符号

我有一个包含表情符号的字符串。我想从该字符串中提取表情符号,我正在使用下面的代码,但它不是我想要的。$string="?helloworld?";preg_match('/([0-9#][\x{20E3}])|[\x{00ae}\x{00a9}\x{203C}\x{2047}\x{2048}\x{2049}\x{3030}\x{303D}\x{2139}\x{2122}\x{3297}\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{