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

C# 正则表达式,从字符串开头读取,c#,regex,C#,Regex,我需要一些关于正则表达式的帮助,我正试图开发一个与从消息中检索Jira签入ID有关的正则表达式。我需要能够给定以下字符串: WYP-857, GL-1723 and then some message GTY-817 about the check-in. 匹配值WYP-857和GL-1723。标准是我必须匹配两到五个字母字符,后跟连字符,然后是三个或更多的数字。这些单独的匹配必须从字符串的开头开始,并且可以有多个匹配项,这些匹配项之间用逗号、分号或空格分隔。在这种情况下,不应匹配GTY-81

我需要一些关于正则表达式的帮助,我正试图开发一个与从消息中检索Jira签入ID有关的正则表达式。我需要能够给定以下字符串:

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

匹配值
WYP-857
GL-1723
。标准是我必须匹配两到五个字母字符,后跟连字符,然后是三个或更多的数字。这些单独的匹配必须从字符串的开头开始,并且可以有多个匹配项,这些匹配项之间用逗号、分号或空格分隔。在这种情况下,不应匹配
GTY-817
,因为它不在字符串的开头。到目前为止,我所做的所有尝试似乎都与WYP-857、GL-1723完全匹配,而没有返回单个匹配项。任何帮助都将不胜感激。

这应该很容易:

(^|,\ )[A-Z]{2,5}-\d{3}

试试这样的方法:

^[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]*
)或使用
分割来分离

诚然,使用此方法,您仍然需要执行两个操作才能真正获得一个单独ID的列表。

您可以尝试使用此正则表达式

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

所以,如果您拥有这些起始jira ID的完全匹配,那么您可以再次处理该字符串,获得单个ID。两步处理。我说的对吗?是的,我可以这样做,但如果可能的话,我希望一步到位。