3
需要一些正則表達式的幫助,所以我需要從字符串中提取票號「票#999999」..我如何使用正則表達式來做到這一點。preg_match_all()
我的當前正則表達式正在工作,如果我有超過一個號碼在票#9999 ..但如果我只有票#9它不工作請幫助。
當前正則表達式。
preg_match_all('/(Ticket#[0-9])\w\d+/i',$data,$matches);
謝謝。
需要一些正則表達式的幫助,所以我需要從字符串中提取票號「票#999999」..我如何使用正則表達式來做到這一點。preg_match_all()
我的當前正則表達式正在工作,如果我有超過一個號碼在票#9999 ..但如果我只有票#9它不工作請幫助。
當前正則表達式。
preg_match_all('/(Ticket#[0-9])\w\d+/i',$data,$matches);
謝謝。
在您的模式[0-9]
匹配1個數字,\w
匹配另一個數字,\d+
匹配1+數字,因此需要#
後面的3位數字。
使用
preg_match_all('/Ticket#([0-9]+)/i',$data,$matches);
這將匹配:
Ticket#
- 一個字符串Ticket#
([0-9]+)
- 第1組捕獲1個或多個數字。$data = "Ticket#999999 ticket#9";
preg_match_all('/Ticket#([0-9]+)/i',$data,$matches, PREG_SET_ORDER);
print_r($matches);
輸出:
Array
(
[0] => Array
(
[0] => Ticket#999999
[1] => 999999
)
[1] => Array
(
[0] => ticket#9
[1] => 9
)
)
這是可能的,可以提供更好/更高效的答案,但我們不會知道,直到你提供完整的輸入字符串。我們知道您的輸入字符串可以是'Ticket#9',但是當您有多個票證子字符串需要捕獲時,我們不知道您的輸入字符串是什麼樣子。請編輯您的問題以澄清您的問題。 – mickmackusa