从字符串中剥离故障单ID:“[故障单ID:9884219]”

时间:2012-09-05 03:02:00

标签: php regex numbers strip ticket-system

在我的支持服务单系统中,回复会发送给用户,主题中包含[Ticket ID: ######]

通过提供整个标题,我可以用什么来删除######?

例如,一个可以改变它的函数:

  

[Ticket ID:600238]忘记密码,请重置:(

进入这个:

  

600238

主题可以从任何字符开始,但是使用空格将票证ID括号与主题本身分开。

是否有RegEx来执行此操作?

2 个答案:

答案 0 :(得分:5)

您可以使用preg_match

if (preg_match("/\[Ticket ID: (\d+)\]/", $input, $matches)) {
    $ticket_id = $matches[1];
}

答案 1 :(得分:1)

'['']'在正则表达式中具有空间含义,因此您必须在正则表达式中转义它们。 您需要的正则表达式为/\[Ticket ID: [\d]{6}\]/

如果不确定单词之间的空格数,您可能希望在单词之间使用[\ s] +。

这个正则表达式将为您提供整个Ticket ID: ######并且您必须再次提取数字。

RegExp功能非常强大,您可以在此处了解有关RegExp here

的更多信息