我正在使用正則表達式模式來分解servlet的上下文路徑。正則表達式沒有正確分解文件路徑的版本號
/{1,2}([^/{1,2}]+)
這對於像/User/folder1/folder2/folder3/
這樣的簡單路徑非常適用。
但是,在更現實世界的情況下,如果其中一個文件夾名稱包含虛線版本號,例如:/User/username/Library/Tomcat/apache-tomcat-6.0.24
,則似乎存在問題。
在這種情況下,Matcher.group(1)
將返回apache-tomcat-6.0.
而不是apache-tomcat-6.0.24
。我不知道爲什麼會這樣。我相信它不應該。
任何見解?
編輯
這工作:
/{1,2}([^/]+)
在.NET中,{x,y}表示匹配x到最後一個標記的出現次數。此外,你可以在[...]條款之後編寫它。這些在java中意味着什麼?另外,是否有任何可以使用的String.Split來分割/? – sisve 2010-07-19 08:36:40
@菲利普幾乎回答了它。我需要記住只使用字符類之外的範圍量詞表達式。我的錯。我也可以使用字符串拆分,但我也想在xpath表達式的另一個正則表達式中使用它,以便從謂詞中分離名稱空間。謝謝你的評論! – FK82 2010-07-19 08:59:17