2013-05-14 81 views
0

我需要一些正則表達式的幫助,我正在嘗試開發與從郵件中檢索Jira簽入ID相關的正則表達式。我需要能夠考慮到本字符串:正則表達式,從字符串的開頭讀取

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

匹配值WYP-857GL-1723。標準是我必須匹配兩個到五個字母字符,然後是連字符,然後是三個或更多個數字。這些單獨的匹配必須從字符串的開始處開始,並且可以有多個事件用逗號,分號或空格分隔。在這種情況下,GTY-817不應匹配,因爲它不在字符串的開頭。我迄今爲止所做的所有嘗試似乎完全匹配WYP-857, GL-1723,並且未返回單個匹配項。任何幫助,將不勝感激。

+0

所以,如果你有這些啓動JIRA ID的完全匹配,你可以再次處理這個字符串,個人獲得的ID。兩步處理。我對嗎? – Pako 2013-05-14 10:58:19

+0

是的,我可以做到這一點,儘管如果可能的話,我希望一步到位。 – chead23 2013-05-14 10:59:52

回答

1

你可以試試這個正則表達式

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

嘗試是這樣的:

^[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的列表。