匹配以下模式的常见正则表达式是什么?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/