我想在非常长的文本中找到第一个匹配的字符串。我知道我可以使用preg_grep()并获取返回数组的第一个元素。但是如果我只需要第一场比赛(或者我知道事先只有一场比赛),那么这样做效率不高。任何建议?正则表达式在PHP中:找到第一个匹配的字符串
2
A
回答
3
preg_match()返回模式匹配的 次数。这将是 0次(不匹配)或1次 ,因为preg_match()会在第一次匹配后停止搜索 。 preg_match_all()会相反将 继续,直到它到达 主题的末尾。如果 发生错误,preg_match()返回FALSE。
0
这里是你如何能做到这一个例子:
$string = 'A01B1/00asdqwe';
$pattern = '~^[A-Z][0-9][0-9][A-Z][0-9]+~';
if (preg_match($pattern, $string, $match)) {
echo "We have matched: $match[0]\n";
} else {
echo "Not matched\n";
}
你可以尝试print_r($match)
检查阵列结构和测试您的正则表达式。对正则表达式
旁注:
- 波浪号〜在正则表达式只是环绕 模式需要分隔符。
- 插入符号^表示我们从字符串(可选)
- 的加+开始 匹配表示,我们可以有下面的一个或更多 整数。 (这样A01B1,A01B12,A01B123还将 匹配。
相关问题
- 1. 正则表达式:匹配,直到找到第一个]字符
- 2. 找到一个匹配字符串的正则表达式?
- 3. Objective-C在字符串中查找第一个匹配的正则表达式
- 4. grep第一个匹配正则表达式的字符串
- 5. Powershell正则表达式匹配字符串,除了第一个
- 6. PHP正则表达式匹配一个字符串列表
- 7. 正则表达式匹配更大的字符串第一
- 8. PHP的正则表达式在字符串中匹配多个字符串?
- 9. 正则表达式正则表达式匹配字符串
- 10. 在java正则表达式中匹配一个字符串
- 11. 正则表达式匹配字符串
- 12. 正则表达式匹配字符串
- 13. 正则表达式匹配字符串
- 14. 正则表达式匹配字符串
- 15. 正则表达式匹配字符串
- 16. 正则表达式匹配字符串
- 17. 正则表达式匹配字符串
- 18. 正则表达式匹配字符串
- 19. 匹配匹配字符串的正则表达式的子串
- 20. 重复字符匹配正则表达式匹配字符串
- 21. Perl的正则表达式来找到一个不匹配的字符串
- 22. 字符串查找每个正则表达式匹配
- 23. 正则表达式匹配和编码在一个字符串
- 24. 正则表达式匹配其中一个字符串
- 25. PHP正则表达式匹配字符串中的HTML标签
- 26. PHP正则表达式匹配这三个字符串
- 27. 正则表达式,得到第一个符号“&”在字符串
- 28. Java正则表达式第一个匹配字符
- 29. PHP的正则表达式字符串模式匹配
- 30. 正则表达式匹配“一切,但”一个字符串
但我怎么能提取匹配的字符串呢?看来,通过调用的preg_match()我只知道,如果有匹配 – powerboy 2010-04-25 20:57:26
'preg_match()'的第三个参数,如果给出的话,将会填充匹配(es)。 – 2010-04-25 21:02:32
@Max - 确切地说,这就是为什么我链接到手册:-) – timdev 2010-04-25 21:04:19