2016-07-25 165 views
-1

我想爲下面的字符串規則表達式匹配

  1. abc deff <XYZ>.xls
  2. <XYZ> abc.xlsx
  3. ABCD.csv

創建模式通過以下方式

(\\w*)(\\<)(\\w*)(\\>)(\\w*)(\\.)(\\w*) 

但它不是爲我工作

預期輸出

1. abc deff <XYZ>.xls 
    g1 = abc deff 
    g2 = XYZ 
    g3 = xls 

2. <XYZ> abc.xlxs 
    g1 = "" 
    g2 = XYZ 
    g3 = xlxs 

3. ABCD.csv 
    g1 = ABCD 
    g2 = "" 
    g3 = csv 

預先感謝幫助

+0

如果你想匹配文件,你可能更喜歡'PathMatcher',使用正則表達式或glob,而不是整個模式。 – Mena

+0

如果字符串中沒有「csv」,你的第三場比賽如何在第3組中包含「csv」? –

回答

0

?(?=...(...))語法用法可能會幫助你。嘗試是這樣的:

([^\\.<]*)(<[^>]+>)?(?=\\.(.*)) 

一個短語abc deff <XYZ>.xls它給三組abc deff<XYZ>xls。使用積極的前瞻性,如果需要,您應該能夠在比賽中避免<>,請參閱xls匹配組的完成方式。

+0

感謝Andrew的評論 – vijendra