2011-12-02 77 views
5

我想創建一個正則表達式,將從字符串中選擇兩個選項中最長的一個。正則表達式來選擇最長的選項

長度不超過15個字符的數值或長度不超過11​​個字符的值。

到目前爲止,我有這樣的:

^([0-9]{1,15}|.{1,11}) 

但例如字符串:因爲它看起來在paranthesis的第一部分'7elevenshopfood'被縮短到'7'。如果我切換到

^(.{1,11}|[0-9]{1,15}) 

,因爲它看起來在表達式的第一部分再串'123456789123456789'被縮短至'12345678912'

有更多正則表達式知識的人有想法嗎?

+0

什麼正則表達式方言/語言/工具? – Qtax

回答

6

這就是大多數正則表達式方言的工作原理,它們被編寫並且第一個匹配部分將結束搜索。

在你的情況,你可以解決與類似:

^(\d{12,15}|.{1,11}) 
+2

優秀的答案。 – FailedDev

+0

這麼簡單! :+1。 – Toto

+0

當你看到它時非常明顯......謝謝! – Sonny