从字符串中剥离票证ID:“;[票据ID:9884219]”;


Stripping the Ticket ID out of a String: "[Ticket ID: 9884219]"

在我的支持票证系统中,会向用户发送回复,主题中包含[Ticket ID: ######]

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

例如,一个将改变这一点的函数:

【票证ID:600238】忘记密码,请重新设置:(

进入这个:

600238

主题可以以任何字符开头,尽管票证ID括号使用空格与主题本身隔开。

有RegEx来做这件事吗?

您可以使用preg_match

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

'[']'在正则表达式中具有空间意义,因此必须在正则表达式中将其转义。您需要的正则表达式是/'[Ticket ID: ['d]{6}']/

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

这个正则表达式将给你完整的Ticket ID: ######,你必须再次提取数字。

RegExp非常强大,您可以在这里了解更多关于RegExp的信息。