常用正则表达式匹配模式Gig1 / 2和Gig1 / 2/3

时间:2011-03-03 03:13:53

标签: java regex

匹配以下模式的常见正则表达式是什么?

  • Gig1/2
  • Gig1/2/3

我有以下模式匹配字符串Gig1 / 1和Gig1 / 1/1。 但问题是,Gig1 / 1/1与两种模式都匹配。请让我知道,如何避免这种情况?

Pat1:“。*?(\ d +)/(\ d +)”

Pat2:“。*?(\ d +)/(\ d +)/(\ d +)”

2 个答案:

答案 0 :(得分:2)

您需要在正则表达式中添加开始和结束锚点:

Pat1:^"\w+(\d+)/(\d+)"$

Pat2:^"\w+(\d+)/(\d+)/(\d+)"$

答案 1 :(得分:2)

Pat1:^\p{L}+(\d+)/(\d+)$

Pat2:^\p{L}+(\d+)/(\d+)/(\d+)$

如果您只是将^.*?(\d+)/(\d+)$应用于Gig1/2/3.*?部分将匹配Gig1/,因为该点可以匹配任何字符(无论是否懒惰都无差异)。

您需要更加具体地了解数字之前的内容。我假设是字母,所以我用\p{L}表示“任意(Unicode)字母”。

在将这些正则表达式粘贴到Java字符串中之前,不要忘记将反斜杠加倍。