1

我正在编写一个 php 脚本,我需要创建一个正则表达式规则来匹配两种类型的字符串(下面代码中的 string1 和 string2),并且匹配的数字需要在 $matches[1] 中(不应该是 match[2] )。

<?php
$ticketNumber1 = $ticketNumber2 = '';
$string1 = "[Ticket ID: 309972] New Support Ticket Opened";
$string2 = "Ticket #: 656398";
$regex = "/Ticket #|ID: (\d+)/";
if(preg_match($regex, $string1, $matches))
{
        $ticketNumber1 = $matches[1];
}
if(preg_match($regex, $string2, $matches))
{
        $ticketNumber2 = $matches[1];
}
echo "TN1: $ticketNumber1\n";
echo "TN2: $ticketNumber2";
echo "\n";
?>

谁能帮我这个?应该使用什么正则表达式来获得结果?

请帮忙。

4

1 回答 1

4

您需要限制运算符的范围或使用非捕获组:

/Ticket (?:#|ID): (\d+)/

正则表达式101演示

于 2013-10-03T15:44:50.777 回答