正则表达式的含义php,求正则表达式含义
preg_match('~^(ftp|news|http|https)?://(.*)$~D', $url, $matches)
疑問
1.正則表達式一般寫法 '/正則/'
這個為什么這樣寫?
2.此正則啥意思?
回復討論(解決方案)
~沒有遇到過,應該和/差不多吧,就是定界符的意思。
^(ftp|news|http|https)?://(.*)$
^字符串開始處開始匹配
(ftp|news|http|https)? 匹配ftp或者news或者http或者https,含有零次或者1次
:// 匹配://
(.*) 匹配任意字符任意次數
$字符串結束
最后的大寫字母D:
D (PCRE_DOLLAR_ENDONLY) 如果設定了此修正符,模式中的美元元字符僅匹配目標字符串的結尾。
默認的規則串定界符是 /
但你也可以指定其他字符為定界符,以減少特使字符的轉義
D 模式用的極少,自己理解吧
D(PCRE_DOLLAR_ENDONLY)
如果設定了此修正符,模式中的美元元字符僅匹配目標字符串的結尾。沒有此選項時,如果最后一個字符是換行符的話,美元符號也會匹配此字符之前(但不會匹配任何其它換行符之前)。如果設定了 m 修正符則忽略此選項。Perl 中沒有與其等價的修正符。
這個正則應該是分析一個url列表用到的
列表格式大概是每行一個url并且以換行結尾
如果不使用D只能找到到第一個匹配那行
默認的規則串定界符是 /
但你也可以指定其他字符為定界符,以減少特使字符的轉義
D 模式用的極少,自己理解吧
D(PCRE_DOLLAR_ENDONLY)
如果設定了此修正符,模式中的美元元字符僅匹配目標字符串的結尾。沒有此選項時,如果最后一個字符是換行符的話,美元符號也會匹配此字符之前(但不會匹配任何其它換行符之前)。如果設定了 m 修正符則忽略此選項。Perl 中沒有與其等價的修正符。
默認的規則串定界符是 /
但你也可以指定其他字符為定界符,以減少特使字符的轉義
受教~
http://blog.csdn.net/tigerdsh/article/details/8866456 看了這個你就明白了,詳細的解釋
首先樓主應該理解preg_match(),它是一種是基于perl語言,使用“preg_”為前綴命名的函數。在這里,其實就是用$url替換$matches里符合~^(ftp|news|http|https)?://(.*)$~D這一個正則的字符串。
~是一個定界符,默認的是/,當然也可以自己定義,前后對應就可以了。
^是開頭,$是結尾,|是或,?是出現0次到1次,*是出現1次到多次,.是匹配除 \n 以外的任何字符。D是不匹配任何 0 到 9 之間的單個數字,相當于 [^0-9]。
可以看我的博客:http://blog.csdn.net/wf120355/article/details/8753593
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的正则表达式的含义php,求正则表达式含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jxl map,jxl操作Ex
- 下一篇: PHP制作回合制游戏,回合制游戏脚本制作