【发布时间】:2021-01-04 03:25:56
【问题描述】:
我无法使用正则表达式获取键值对
到目前为止的代码:
String raw = '''
MA1
D. Mueller Gießer
MA2 Peter
Mustermann 2. Mann
MA3 Ulrike Mastorius Schmelzer
MA4 Heiner Becker
s 3.Mann
MA5 Rudolf Peters
Gießer
'''
Map map = [:]
ArrayList<String> split = raw.findAll("(MA\\d)+(.*)"){ full, name, value -> map[name] = value }
println map
输出是: [MA1:,MA2:彼得,MA3:Ulrike Mastorius Schmelzer,MA4:海纳贝克,MA5:鲁道夫彼得斯]
就我而言,关键是: MA1、MA2、MA3、MA\d(所以 MA 有任意 1 位数字)
在下一个键出现之前,该值绝对是所有内容(包括换行符、制表符、空格等...)
有人知道怎么做吗?
提前致谢, 塞巴斯蒂安
【问题讨论】:
标签: java regex groovy regex-greedy