php 正則表示式中的 .*? 表示什麼意思
我們知道我 .* 是任意字元,有的時候比較困惑在加個?什麼意思。
?是非貪婪模式
.*會匹配後面的一切字元,就是到結束的意思
加?後就是不貪婪模式,這時要看?後邊的字元是什麼了,如.*?"的意思是遇到雙引號則匹配結束
例如:
現在我要匹配出圖片中的src,圖片格式為:"圖片01<img src='http://www.baidu.com/uploads/123.jpg' width='200' height='200'/>,圖片02<img src='http://www.baidu.com/uploads/888.jpg' width='200' height='200'/>"
正則表示式為:'#<img\s+src=[\'|"](.*?)[\'|"].*?[/]?>#',假如(.*?)括號中沒有?匹配結果為 http://www.baidu.com/uploads/123.jpg' width='200' height='200 ,加上?匹配結果為http://www.baidu.com/uploads/123.jpg,很明顯從匹配結果開始到?號後面的單引號當前匹配就結束了,防止了貪婪匹配。
相關推薦
php 正則表示式中的 .*? 表示什麼意思
我們知道我 .* 是任意字元,有的時候比較困惑在加個?什麼意思。 ?是非貪婪模式.*會匹配後面的一切字元,就是到結束的意思加?後就是不貪婪模式,這時要看?後邊的字元是什麼了,如.*?"的意思是遇到雙引號則匹配結束 例如: 現在我要匹配出圖片中的src,圖片格式為:"圖片01<img src='ht
PHP正則表示式中的元字元
假設我們需要在一個字串中查詢he,我們可以使用正則he,這是最簡單的正則表示式,它會精確地匹配這樣的字串:有兩個字元組成,前一個字元是h後一個字元是e。一般情況下,處理正則表示式的工具會提供一個忽略大小寫的選項,如果選擇了,這個表示式就可以匹配he、HE、He、hE這四種情況的任意一種,但是呢,
如何理解PHP正則表示式中$1、$2、$3......
今天看《PHP從入門到精通》的時候,遇到了一個例子: 上面的這個例子$1就是代表$string中的“粗體字”這三個字。 其實$1,$2,$3這類的術語和正則表示式中的反向引用有關,你可以用它們代表在
php正則表示式 剔除字串中的除了漢字的字元(只保留漢字)
1)utf-8的編碼格式,匹配中文程式碼如下: <?php $str = "utf-8下匹配出中文字串"; $preg = "/[\x{4e00}-\x{9fa5}]+/u"; if(preg_match_all($preg,$str,$mat
正則表示式中\1 \2是什麼意思
正則表示式中,\代表轉義字元,通常是轉義一些特殊字元,比如 \f 換頁 \n 換行 \r 回車 \s 空白字元:空格、製表符、換頁符 \S 非空白字元 \t 製表符 \d 一個數字字元0-9 \D 非數字字元 \w 匹配字母數字下劃線,相當於[A-Za-z0-9_] \W匹配非字母數字下劃線
正則表示式中^符號表達的意思
今天看到程式碼中有段程式碼覺得很奇怪, 一開始看著,一臉懵逼,為啥把中文替換掉了,那還要這個方法有什麼用? 最後,自己寫了一個方法測試了一下, 才發現了貓膩,原來是正則表示式中這個“^”符號有貓膩,意思就是“非”的意思,所以在這段程式碼的意思就是,將不是中文的字
js正則表示式中關於零寬斷言的奇異現象
碰到一個特別的需求,就是有一段Sql Server 的 SQL片段,內容大概就是所有JOIN表的集合,要求把這個SQL片段分割成陣列,每個元素就是包含單個表的字串。 例如: SQL = INNER JOIN Sale b ON 1=1 LEFT JOIN OutStock c
PHP 正則表示式---匹配模式
1、PHP 正則表示式 <一>正則表示式貪婪匹配,非貪婪匹配。 預設是貪婪匹配, 例如 ①、貪婪匹配, $str = '香腸月餅'; preg_match('/(.)</td>/',$str,$rs); print_r($rs); ②、 $str = '香腸月餅'; preg_
PHP 正則表示式匹配函式 preg_match 與 preg_match_all
preg_match() preg_match() 函式用於進行正則表示式匹配,成功返回 1 ,否則返回 0 。 語法: 1 int preg
正則表示式中常用字串方法
1,search()用於檢索字串中指定的子字串,或檢索與正則表示式相匹配的子字串,並返回子串的起始位置。search()方法不支援全域性搜尋,因為會忽略正則表示式引數的標識g,並且也忽略了regexp的lastIndex屬性,總是從字串的開始位置進行檢索,所以它會總是返回str的第一個匹配的位置。 &n
關於python正則表示式中匹配分組的問題
在爬取網頁資訊時,我們不妨會用到Python正則表示式。之前一直沒有太明白關於正則表示式匹配分組的問題,今天終於搞清楚了,所以特意寫一下讓自己印象深刻。 myPage = requests.get(url).content.decode("gbk") 通過requests我們在網頁得到了這樣
正則表示式中Pattern類、Matcher類和matches()方法簡析
1.簡介: java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。 它包括兩個類:Pattern和Matcher 。 Pattern: 一個Pattern是一個正則表示式經編譯後的表現模式。 Matcher: 一個Matcher物件
PHP正則表示式 模式引數詳解
i (PCRE_CASELESS) 如果設定此修正符,模式中的字元將同時匹配大小寫字母。 m(PCRE_MULTILINE) 預設情況下,PCRE 將目標字串作為單一的一“行”字元所組成的(甚至其中包含有換行符也是如此)。“行起始”元字元(^)僅僅匹配字串的起始
正則表示式中如何新增變數
如果給義一個字串或是陣列加入變數,是非常簡單的事情,但是我們不能用這種常規思維來給正則表示式加入變數,比如 var param = 3; var reg = "/^[0-9]+"+param+"[a-z]+$/"; ✘ var reg = /^[0-9]+"+param+"[a-z]+$
正則表示式中的模式,函式,及使用規則
一、正則表示式轉義 正則中的特殊符號: . * ? $ [] {} () | \ 正則表示式匹配特殊字元如果需要加 \ 表達轉義,比如: pattern
PHP正則表示式獲取武漢市的實時pm2.5資料並郵件傳送phpmailer
最近讀了PHP與mysql web開發這本書學習PHP,感覺受益匪淺,PHP是由C語言所編寫的,所以C語言的語法在PHP中同樣適用如printf與PHP的echo一樣具有輸出功能,(換行)。學習了PHP語言的正則表示式來抓取網頁內容,又讀到了php的mail函式時想用來發送郵件,但是ma
php正則表示式替換圖片地址
<?php /*PHP正則提取圖片img標記中的任意屬性*/ $str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br />PHP正則提取
正則表示式中的分組() ----填坑
import re string="abcdefg acbdgef abcdgfe cadbgfe" #帶括號與不帶括號的區別 #不帶括號 regex=re.compile("((\w+)\s+\w+)") print(regex.findall(string)) #輸出:[('abcde
PHP正則表示式基礎之認識正則表示式
正則表示式是我們平常在程式開發過程中經常用到的一種工具,有關於它的起源以及除程式之外的應用場景咱就不贅述了,咱們只看它在程式中是如何來應用的。 這個正則表示式在我們程式中通常是把它當做一種模式去匹配一類字串,通俗地講,就是用一個字串描述一個特徵,完事驗證另外一個字串是否符合這個特徵的公式。你
php正則表示式基礎及使用
概述 正則表示式是一種描述字串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、擷取匹配的字串。常用的語言基本上都有正則表示式,如JavaScript、java等。其實,只有瞭解一種語言的正則使用,其他語言的正則使用起來,就相對簡單些。文字主要圍繞解決下面問題展開。 有哪