正则表达式模式匹配

时间:2016-07-25 13:15:11

标签: java regex pattern-matching core

我正在尝试为后续字符串

创建模式
  1. abc deff <XYZ>.xls
  2. <XYZ> abc.xlsx
  3. ABCD.csv
  4. 使用以下模式

    (\\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
    

    提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

可能使用?(?=...(...))语法会对您有所帮助。尝试这样的事情:

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

对于词组abc deff <XYZ>.xls,它会提供三个组abc deff<XYZ>xls。如果需要使用积极的预测,您应该能够避免匹配中的<>,看看xls匹配组是如何完成的。