我试图验证我的字符串是否匹配模式。也就是说,完整的字符串可以写成该模式。 但是preg_match
返回true
,如果有任何子字符串匹配该模式。 (如preg_match("#[a-z]*#, "333k")
返回1
,我不想。 在这个例子中,我宁愿验证,整个字符串只含有少量的拉丁字母。)PHP preg_match完整字符串
10
A
回答
13
您使用开始和年底标记,^
和$
,以指示正则表达式模式中字符串的开始和结束。这样你可以使表达式只匹配整个字符串,而不是任何种类的子字符串。在你的情况下,它会再看看这样的:
preg_match("#^[a-z]*$#", "333k");
还可以,有一个这些标记,指定该模式必须只匹配开头或字符串的结尾。
1
请注意,要将字符串匹配定位在字符串的开始和结尾处,您可能还要考虑使用\A
和\z
定位点。
preg_match('~\A[a-z]*\z~', "333k");
^^ ^^
的\A
和\z
是明确开始和PHP的正则表达式字符串锚端(如他们的行为不依赖于任何正则表达式修饰符,即使你指定m
MULTILINE修改,他们将继续主张字符串开始/结束位置)。请参阅PHP documentation中有关PHP正则表达式锚点的更多信息。
谨防\Z
虽然:\Z
将在最后一个简单的换行在之前的整个字符串匹配,而\z
将只匹配在字符串的尽头,那就是,有字符串中的所有字符后(见Whats the difference between \z and \Z in a regular expression and when and how do I use it?)
相关问题
- 1. `preg_match` PHP中的整个字符串
- 2. PHP数字字符串preg_match
- 3. preg_match字符串
- 4. 确定字符串的完整性 - PHP
- 5. php替换字符串并读取完整字符串
- 6. Preg_match空字符串
- 7. 的preg_match字符串
- 8. 如何使用preg_match从字符串获取整数值php
- 9. PHP preg_match多面搜索字符串
- 10. PHP的preg_match返回两个字符串
- 11. PHP使用preg_match验证字符串
- 12. 字符串分割PHP的preg_match
- 13. php如何为preg_match转义字符串?
- 14. PHP:使用preg_match在字符串中搜索子字符串?
- 15. PHP preg_match在子字符串后返回字符串中的值
- 16. PHP preg_match只得到完整匹配
- 17. 分割字符串的preg_match
- 18. preg_match和长字符串
- 19. 的preg_match字符串不行
- 20. PHP的preg_match:得到一个完整的字
- 21. PHP preg_match匹配字符串末尾的字符
- 22. PHP preg_match确定字符
- 23. PHP的preg_match转义字符
- 24. PHP的preg_match字+通配符
- 25. 法语字符的PHP preg_match
- 26. preg_match和正则表达式来选择基于部分字符串的完整字符串
- 27. 完整字符串与不完整字符串(或简写形式)之间的字符串匹配
- 28. php preg_match字符特殊字符([](){}等)
- 29. 包含完整字符串分隔符的提取字符串
- 30. PHP - 字符串和整数
啊,感谢您的超级快速帮助,现在就开始工作。 – user2089648 2013-05-04 15:27:06