正则表达式,从字符串的开头读取

本文关键字:开头 读取 字符串 正则表达式 | 更新日期: 2023-09-27 18:13:21

我需要一些正则表达式的帮助,我正试图从消息中检索Jira签入ID。我需要能够给出这个字符串:

WYP-857, GL-1723 and then some message GTY-817 about the check-in.

匹配WYP-857GL-1723。标准是我必须匹配2到5个alpha字符,后跟一个连字符,然后是3个或更多的数字。这些单独的匹配必须从字符串的开头开始,并且可以多次出现,以逗号、分号或空格分隔。在这种情况下,GTY-817不应该匹配,因为它不在字符串的开头。到目前为止,我所做的所有尝试似乎都完全匹配WYP-857, GL-1723,而不是返回单个匹配。

正则表达式,从字符串的开头读取

你可以试试这个regex

^[a-zA-Z]{2,5}-'d{3,}([,;'s][a-zA-Z]{2,5}-'d{3,})*

这应该很简单:

(^|,' )[A-Z]{2,5}-'d{3}
http://tinyurl.com/clt367h

试试这样:

^[a-zA-Z]{2,5}-[0-9]{3}[0-9]*(, [a-zA-Z]{2,5}-[0-9]{3}[0-9]*)+

这应该返回初始的WYP-857, GL-1723,然后您可以使用另一个Regex匹配([a-zA-Z]{2,5}-[0-9]{2}[0-9]*)或使用Split将其分开。

不可否认,使用此方法,您仍然需要执行两个操作才能实际获得独立id的列表。