我試圖驗證我的字符串是否匹配模式。也就是說,完整的字符串可以寫成該模式。 但是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