everyone。 你能給我一些關於如何在1中加入以下3個正則表達式的建議嗎?加入3個正則表達式1
preg_match_all('/>\s*([\w-]+)\s*</', $str, $matches_1);
preg_match_all('/<\?=\s*([\w-]+)\s*\?>/', $str, $matches_2);
preg_match_all('/echo\s*["|']+\s*([\w-]+)["|']+/', $str, $matches_3);
UPDATE
preg_match_all(
'/
>\s*([\w-]+)\s*<
|
<\?=\s*([\w-]+)\s*\?>
|
echo\s*("|')+\s*([\w-]+)("|')+
/x',
$str, $matches_123);
對我來說,語法,如果寫在一行,並移除X-修改以上纔有效。出於某種原因,不這樣做的原因:
警告:preg_match_all()[function.preg匹配-所有]:編譯失敗:丟失),偏移量125 ...
我已經解決了它只是在3個字符串中拆分正則表達式並將它們連接起來,但它是一團糟。
有一個問題:它工作嗎?如果是這樣,爲什麼修理沒有損壞的東西? – mellamokb 2011-05-13 15:04:58
@mellamokb它的工作原理。但是,考慮你有一個非常大的字符串,你需要應用正則表達式。有了上面的代碼,你需要解析這個大字符串三次,我認爲這不是一個好習慣。 – noname 2011-05-13 19:14:12
正如@AlanMoore在下面寫的那樣,這個特殊的3行/ x正則表達式只能和每個'#'都轉義成'\#'一起使用。但是,當然,再次壓縮它的效果是一樣的。 – mario 2011-05-15 15:28:35