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