我真的很困惑,因爲使用preg_replace
但是慢慢學習。preg_replace正則表達式查找字母前面的數字
我需要的功能幫助:
$str= preg_replace('#\W\d+#', '\W \d+', $str);
的想法是,林尋找那個面前有直接的字母,不帶空格的數字,
即ABC123。 (不是「ABC 123」,而不是「123ABC」)
,我如何簡單地包括在之間的空間或性格讓ABC123成爲ABC 123或ABC @@ 123
感謝大家!
我真的很困惑,因爲使用preg_replace
但是慢慢學習。preg_replace正則表達式查找字母前面的數字
我需要的功能幫助:
$str= preg_replace('#\W\d+#', '\W \d+', $str);
的想法是,林尋找那個面前有直接的字母,不帶空格的數字,
即ABC123。 (不是「ABC 123」,而不是「123ABC」)
,我如何簡單地包括在之間的空間或性格讓ABC123成爲ABC 123或ABC @@ 123
感謝大家!
<?php
$str = 'abc()1234';
$str= preg_replace('#([a-zA-Z()])(\d+)#', '$1 $2', $str);
echo $str;
輸出:
ABC()1234
$ 1和$ 2的反向引用和分別是指第一和第二捕獲基團,。更多信息@http://www.regular-expressions.info/brackets.html。
我在示例中使用了preg_match,因此您可以真正瞭解數組是如何填充的以及可以用於preg_replace的。按照混沌的例子,$ 1和$ 2會引用第一個和第二個捕獲的碎片。 – 2009-10-04 23:43:08
感謝您的幫助,您是否可以幫助我的最新評論:'非常好,有用。但對我而言,我可能實際上需要在數字之前檢查括號,那麼模式也可以使用abc()123? – bluedaniel 2009-10-04 23:45:50
我更新了它,所以它佔(和)。 – 2009-10-04 23:47:11
你想
$str= preg_replace('#([A-Za-z]+)(\d+)#', '$1 $2', $str);
\W
不會做你認爲它; \w
表示「單詞字符」,而\W
表示「而非單詞字符」。既然你特意要字母,但是,你也不想要,你需要[A-Za-z]
,這是與所有字母匹配的字符類。之後你還需要一個+
以匹配「一個或多個」。
括號是如何「捕獲」表達式的一部分供以後參考; $1
和$2
指向括號捕獲的文本。
非常好,作品一種享受。但對我來說,我可能實際上需要在數字之前檢查括號,那麼模式也可以使用abc()123? – bluedaniel 2009-10-04 23:43:13
製作[A-Za-z] [A-Za-z()]並在其中包含任何其他字符,但是如果您這樣做,則可能需要轉義[和]。 – 2009-10-04 23:44:30
感謝那個工作得很好的人。不能告訴你你的幫助 – bluedaniel 2009-10-04 23:52:05
您可以在online PHP Regegular expressor tester中看到/([A-Za-z])(\d+)/
和/([A-Za-z]+)(\d+)/
之間的差異。在你的情況下,兩者都與preg_replace一起工作。但後者也適用於preg_match_all,所以它更加健壯。
看看這裏:http://txt2re.com/它可能會幫助 – SeanJA 2009-10-04 23:32:35
謝謝,但我一直編碼太多今晚,看着這讓我的頭受傷! – bluedaniel 2009-10-04 23:44:03