正则表达式与多个或条件匹配

问题描述:

我想用RegEx搜索产品参考的所有匹配项。该产品参考了带有“XXV-”的万能星,后面跟着一个数字,有时还带有一个或两个字符。一些例子:“XXV-1234-AB”,“XXV-1232”,“XXV-12-X”。比赛的唯一主力是开始。正则表达式与多个或条件匹配

在此示例:

<div>Reference to search is XXV-1234-BH</div> 
<div>Other reference to search is XXV-1235-VC 
</div> 
<div>And XXV-1236-HG 
also</div> 

我需要数学的所有的树代码,用一个正则表达式更好。

我试着用:(?= XXV - )。

  1. *(= <?),只有匹配的第一个?
  2. (= XXV - ?)。?*(= \ N 2)匹配,而是与</DIV>的第一

它更多钞票,以匹配 “<” 或“\ N“?

谢谢你的时间!

+1

你知道_exactly_什么产品参考的样子(“XXV-”,那么数字,那么也许1或2个字符),那么,为什么你使用'。*?',并用_unknown_界定它像“(?=

+0

你说得对,并且Tom Lord Works提供的解决方案! – Duefectu

为什么你的问题关于'匹配'<“或”\ n“'?你确切知道格式应该是什么,所以只需为它构建一个正则表达式。

产品参考文献总是带有“XXV-”,后跟一个数字,在某些情况下带有一个或两个字符。

XXV-\d+(-[A-Z]{1,2})? 
  • [A-Z]手段 “AZ之间的任何字符”:

这可以通过匹配。如果您想要包含其他字符,例如小写,你可以使用:[a-zA-Z]

  • {1,2}意味着前一模式的1-2(在这种情况下,[A-Z])。
  • ?使捕获组成为可选。
  • \d表示任何数字,即相当于[0-9]
  • Here is a demo, with some test cases