匹配两个字符串之间的数字

3

我将尝试匹配两个字符串之间的ID号码。这些字符串看起来像:

Ticket - Subject: opoipoipo |==Ticket ID: 7==|

这个数字很可能会有5位数之多

我已经尝试过

(?<=is \|==Ticket ID:)(.*?)(?=\s*\)==|

我觉得我离正确的答案不远了,但很明显我做错了什么。我的意思只是想让它显示数字7,没有其他多余信息。


2
\|==Ticket ID:\s*(\d+)==\|有什么问题?你只需要获取捕获组1中的内容即可。环视增加了不必要的复杂性,更不用说它们没有像更简单的表达式一样被正则表达式引擎广泛支持。 - NullUserException
@NullUserException 必须转义 '|'。 - megawac
@megawac 滑落了我的脑海 - NullUserException
3个回答

0

你已经非常接近了,我认为以下代码应该可以解决问题:

(?<=\|==Ticket ID:)(.*?)(?===\|)

这里唯一没有处理的部分是你将得到带有值的任何空白字符,但这应该很容易去除。我之所以没有在正则表达式中包含它,是因为许多实现不支持可变长度的回顾后断言,所以在回顾后断言的末尾放置 \s* 可能不起作用。如果你知道总会有一个空格,可以使用以下内容:
(?<=\|==Ticket ID: )(.*?)(?===\|)

0

0

你的解决方案肯定很接近了。考虑对你的正则表达式进行以下微小更改...

(?<=\|\=\=Ticket ID:).*?(?=\s*\=\=\|)

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接