php正則工具
1. php怎麼正則匹配div裡面class值是兩個得
最好不要使用正則來做,感覺你想在做爬蟲,如果是的話建議使用class選擇器或者xpath選擇器。這個都比使用正則簡單。
我遇到這樣的問題都是這兩種工具,比正則簡單。有問題直接問我吧
2. php 正則表達式如何判斷一個字元串是否為合法的四則數學算式
代碼如下(經測通過):
<?php
$str="((1+1)*3.3)/10-12+(1+1)";
if(preg_match("/[+-*/.]{2}|[^+-*/()d.]+/i",$str,$matches)){
echo'非法算式';
}else{
if(substr_count($str,"(")==substr_count($str,")")){
echo'合法算式';
}else{
echo'括弧不匹配';
}
}
?>
判斷str里是否存在連續運算符、小數點或運算符、括弧、數字以外的字元
若存在則非法
若不存在則判斷str里( 和 )數量是否一致
3. php 中支持正則的方法有哪一些
\
將下一個字元標記為一個特殊字元、或一個原義字元、或一個向後引用、或一個八進制轉義符。例如,「n"匹配字元"n"。"\n"匹配一個換行符。串列"\\"匹配"\"而"\("則匹配"("。
^
匹配輸入字元串的開始位置。如果設置了RegExp對象的Multiline屬性,^也匹配「\n"或"\r"之後的位置。
$
匹配輸入字元串的結束位置。如果設置了RegExp對象的Multiline屬性,$也匹配「\n"或"\r"之前的位置。
*
匹配前面的子表達式零次或多次。例如,zo*能匹配「z"以及"zoo"。*等價於{0,}。
+
匹配前面的子表達式一次或多次。例如,「zo+"能匹配"zo"以及"zoo",但不能匹配"z"。+等價於{1,}。
?
匹配前面的子表達式零次或一次。例如,「do(es)?"可以匹配"does"或"does"中的"do"。?等價於{0,1}。
{n}
n是一個非負整數。匹配確定的n次。例如,「o{2}"不能匹配"Bob"中的"o",但是能匹配"food"中的兩個o。
{n,}
n是一個非負整數。至少匹配n次。例如,「o{2,}"不能匹配"Bob"中的"o",但能匹配"foooood"中的所有o。"o{1,}"等價於"o+"。"o{0,}"則等價於"o*"。
{n,m}
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}"將匹配"fooooood"中的前三個o。"o{0,1}"等價於"o?"。請注意在逗號和兩個數之間不能有空格。
?
當該字元緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字元串,而默認的貪婪模式則盡可能多的匹配所搜索的字元串。例如,對於字元串「oooo","o+?"將匹配單個"o",而"o+"將匹配所有"o"。
.
匹配除「\n"之外的任何單個字元。要匹配包括"\n"在內的任何字元,請使用像"(.|\n)"的模式。
(pattern)
匹配pattern並獲取這一匹配。所獲取的匹配可以從產生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中則使用$0…$9屬性。要匹配圓括弧字元,請使用「\("或"\)"。
(?:pattern)
匹配pattern但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以後使用。這在使用或字元「(|)"來組合一個模式的各個部分是很有用。例如"instr(?:y|ies)"就是一個比"instry|instries"更簡略的表達式。
(?=pattern)
正向肯定預查,在任何匹配pattern的字元串開始處匹配查找字元串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,「Windows(?=95|98|NT|2000)"能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字元之後開始。
(?!pattern)
正向否定預查,在任何不匹配pattern的字元串開始處匹配查找字元串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如「Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字元之後開始
(?<=pattern)
反向肯定預查,與正向肯定預查類擬,只是方向相反。例如,「(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
(?<!pattern)
反向否定預查,與正向否定預查類擬,只是方向相反。例如「(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。
x|y
匹配x或y。例如,「z|food"能匹配"z"或"food"。"(z|f)ood"則匹配"zood"或"food"。
[xyz]
字元集合。匹配所包含的任意一個字元。例如,「[abc]"可以匹配"plain"中的"a"。
[^xyz]
負值字元集合。匹配未包含的任意字元。例如,「[^abc]"可以匹配"plain"中的"p"。
[a-z]
字元范圍。匹配指定范圍內的任意字元。例如,「[a-z]"可以匹配"a"到"z"范圍內的任意小寫字母字元。
[^a-z]
負值字元范圍。匹配任何不在指定范圍內的任意字元。例如,「[^a-z]"可以匹配任何不在"a"到"z"范圍內的任意字元。
\b
匹配一個單詞邊界,也就是指單詞和空格間的位置。例如,「er\b"可以匹配"never"中的"er",但不能匹配"verb"中的"er"。
\B
匹配非單詞邊界。「er\B"能匹配"verb"中的"er",但不能匹配"never"中的"er"。
\cx
匹配由x指明的控制字元。例如,\cM匹配一個Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個原義的「c"字元。
\d
匹配一個數字字元。等價於[0-9]。
\D
匹配一個非數字字元。等價於[^0-9]。
\f
匹配一個換頁符。等價於\x0c和\cL。
\n
匹配一個換行符。等價於\x0a和\cJ。
\r
匹配一個回車符。等價於\x0d和\cM。
\s
匹配任何空白字元,包括空格、製表符、換頁符等等。等價於[ \f\n\r\t\v]。
\S
匹配任何非空白字元。等價於[^ \f\n\r\t\v]。
\t
匹配一個製表符。等價於\x09和\cI。
\v
匹配一個垂直製表符。等價於\x0b和\cK。
\w
匹配包括下劃線的任何單詞字元。等價於「[A-Za-z0-9_]"。
\W
匹配任何非單詞字元。等價於「[^A-Za-z0-9_]"。
\xn
匹配n,其中n為十六進制轉義值。十六進制轉義值必須為確定的兩個數字長。例如,「\x41"匹配"A"。"\x041"則等價於"\x04&1"。正則表達式中可以使用ASCII編碼。.
\num
匹配num,其中num是一個正整數。對所獲取的匹配的引用。例如,「(.)\1"匹配兩個連續的相同字元。
\n
標識一個八進制轉義值或一個向後引用。如果\n之前至少n個獲取的子表達式,則n為向後引用。否則,如果n為八進制數字(0-7),則n為一個八進制轉義值。
\nm
標識一個八進制轉義值或一個向後引用。如果\nm之前至少有nm個獲得子表達式,則nm為向後引用。如果\nm之前至少有n個獲取,則n為一個後跟文字m的向後引用。如果前面的條件都不滿足,若n和m均為八進制數字(0-7),則\nm將匹配八進制轉義值nm。
\nml
如果n為八進制數字(0-3),且m和l均為八進制數字(0-7),則匹配八進制轉義值nml。
\un
匹配n,其中n是一個用四個十六進制數字表示的Unicode字元。例如,\u00A9匹配版權符號(©)。
4. PHP的正則是不是有點問題
只要用正則表達式的s模式,讓點可以匹配回車換行符,然後在結果中把回車換行符替換為空,就可以輸出章節名了.
5. php 正則寫法
$str='style="background-image:url(http://..com/new?word=php+%D5%FD%D4%F2%D0%B4%B7%A8&ie=GBK);"';
preg_match('/((.+))/',$str,$match);
print_r($match[1]);
6. php 使用正則表達式是否具有優勢和缺點
優點:
正則表達式可以處理比較復雜的文本數據處理如匹配、替換、分割,比著php中的原生字元串函數功能更強,比如處理url,處理文本,驗證規則
缺點:
有強大的功能,但是處理速度比著原生字元串函數要慢
原則上能用原生的函數不用php中正則表達式
7. php 正則表達式 貪婪模式怎麼寫
MTracer正則表達式驗證工具,一般好用,我是只下載了個這個玩了一會覺得上手挺簡單的,就推薦下。正則表達式工具下載地址:MTracer.rar(首先打開工具,在右邊有上下兩個輸入框,上面那個是輸入正則的,下面那個是輸入要匹配字元串的,上下內容輸入好以後,就可以單擊匹配按鈕了,如果覺得匹配ok的話,就可以直接單擊上面菜單的代碼生成,來生成你要的C#代碼,java代碼,Script代碼等等)比如我要匹配兩個標簽里的所有東西如asdawdsadwdasdmwioasdasd我要匹配兩個Div之間的東西,那麼就應該寫[/S/s]*注意,你用request對象去請求回來的頁面是帶有/r 、/n 、/t這些標簽的,所有你要學會如何去表示這些標簽,另外捕獲標簽的時候,你是否要最大限度的匹配還是要最小限度的去匹配,下面就說明下這兩種模式 貪婪模式 和 非貪婪模式 :在正則表達式的匹配次數後面再添加一個 ? 表示 非貪婪模式
常用的匹配次數有 *、{m.n}、+貪婪模式:表達式在可匹配可不匹配的時候,也是盡可能的 "要匹配"。
非貪婪模式表達式盡可能少的匹配,使可匹配可不匹配的表達式,盡可能的 "不匹配"。
如bdxxx taaaa
表達式A1: .*
結果: 匹配1次
表達式A2:.*?
結果:匹配2次
表達式B1:[/w/s/]{1,}?
結果:匹配2次去掉問號結果:匹配1次同理 將{1,}改+ 也可以得到相同的匹配結果,好了今天就寫這么多了,哪天有空了再寫寫
-
8. php如何進行正則替換
按照你的要求把h後的數字和w後的任意數字替換成固定數的php程序如下
<?php
$fix='555';//固定數
$str='asdasda/w/100/h/200/q/sdasdsad';
$regex1="~h/[0-9]+~";
$result=preg_replace($regex1,"h/".$fix,$str);
$regex2="~w/[0-9]+~";
$result=preg_replace($regex2,"w/".$fix,$result);
print_r($result);
?>
運行結果
asdasda/w/555/h/555/q/sdasdsad
9. 中文版編寫php代碼的工具有那些
1. Rephactor
Rephactor是一款命令行重構工具,這是一款自動化工具,允許開發者以一種簡潔的方式在不同的代碼庫中修改源碼。
主要功能:
保證重構的可逆性—— 一旦發現問題,代碼是可逆的,可以回溯到前一個版本。
查找替換功能—— 普通查找替換,方法重命名,類重命名,正則表達式模式的替換。
所有操作完成後,均基於SimpleTest Aperiplus進行測試,並保證測試的覆蓋率。
集成Phemto ,保證類的相關性測試。
2. Scisr
Scisr是一款利用PHP編寫的重構工具。項目託管在GitHub上。基於GPL許可證下發行。
使用方法:
類的重命名:
[js] view plain
$ scisr rename-class OldName NewName [files]
修改方法:
[js] view plain
$ scisr rename-method OwningClassName oldMethodName newMethodName [files]
文件重命名:
[js] view plain
$ scisr rename-file old/file_name new/dir/new_file_name [files]
重命名類和文件:
[js] view plain
$ scisr rename-class-file OldClassName NewClassName [files]
3. PHP Refactoring Browser
這是一款PHP 代碼的重構工具,通過生成diffs來描述重構的步驟,避免重構過程中的簡單錯誤,該工具非常棒。項目託管在GitHub上。
使用庫:
PHP Parser by Nikic
PHP Token Reflection from Ondřej Nešpor
重構瀏覽器數據主要包含以下幾個方面:
補丁——支持基於更改文件操作創建補丁;
重構——包含實際重構域和適配第三方庫;
集合——基於PHP數組可靠添加集合語義。目前包含一組類型。
4. PhpStorm
PhpStorm是由JetBrains公司開發的一款PHP IDE富應用,同時支持重構。PhpStorm可隨時幫助用戶對其編碼進行調整,運行單元測試或者提供可視化調試功能。
目前,發布了PhpStorm 7版本,新版本支持PHP5.5;改進PHP語法著色性能;Vagrant、SSH 控制&遠程工具;支持Drupal & PHP框架;改進調試和測試性能。
PhpStorm的主要特性:
智能PHP編碼編輯器;
代碼質量分析;
支持調試/測試;
支持HTML/CSS/JavaScript編輯器;
支持跨平台。
5. Zend Studio
Zend Studio是Zend Technologies開發的PHP語言集成開發環境。支持HTML和JS標簽,但只對PHP語言提供調試支持。
主要特性:
具備功能強大的專業編輯工具和調試工具;
支持PHP語法高亮顯示、語法自動填充功能,支持語法自動縮排和代碼復制功能;
支持書簽功能;
內置一個強大的PHP代碼調試工具;
支持本地和遠程兩種調試模式,支持多種高級調試功能。