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


Gig1/2
Gig1/2/3


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

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

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

最佳答案

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

类别2:^\p{L}+(\d+)/(\d+)/(\d+)$

如果仅将^.*?(\d+)/(\d+)$应用于Gig1/2/3,则.*?部分将与Gig1/匹配,因为点可以匹配任何字符(无论是否懒惰,都没有区别)。

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

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

关于java - 通用正则表达式以匹配模式Gig1/2和Gig1/2/3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5176253/

10-12 19:16