Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.8k views
in Technique[技术] by (71.8m points)

求一个正则表达式实现这个匹配

字符串格式:
"[name]张三丰:[uuid]...;[name]金毛狮王:[uuid]....;[name]赵四:[uuid]...;[name]..."
这个字符串由M段数据组成,每段数据以;(冒号)隔开,我需要匹配每段数据内的[name]到:[uuid]之间的内容如果第一段数据匹配成功则完成,否则匹配所有数据
我尝试过这样写[name].*匹配的字符串.*:[uuid]
例如:[name].*三.*:[uuid] -> 匹配张三丰

我写的这段正则表达式是错的,因为:

如果数据是这样的"[name]哈士奇:[uuid]...;[name]金毛:[uuid]张三丰....
那么就会匹配到[uuid]后面的数值,这不是我想要的,我只想匹配每个[name]到之后遇到的第一个:[uuid]之间的内容;。
因为一些原因不能切字符串,只能用正则完成,以上,求助!!!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
var reg = /(?<=[name])([^:]+)/g
str.match(reg)
不是很明白你的意思

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...