试图解决 SO 中发布的正则表达式问题,但被困在这个问题中。
从此字符串
Ob=Web technology,OB=Product SPe,OB=Dev profile,OB=Computer Management,oB=Hardware Services,cd=sti,CD=com,cd=ws
必须按如下方式删除这些值。
Web technology,Product SPe,Dev profile,Computer Management,Hardware Services
我正在尝试下面的正则表达式。
(?=Ob)(?:(\w+=)([\w\s]+,?))+
我的假设是组 1
应该包含所有键,组 2
应该包含所有值。但除了最后一个键值对之外,所有其他键值对都被分配到组 0
。
有没有办法将所有值获取到组2
?
最佳答案
您的正则表达式的问题是 group 1
和 group 2
包含在非捕获组中。这导致整个正则表达式被 group 0
捕获。另一件事是正向前瞻阻止正则表达式进行全局匹配。
下面的正则表达式将收集所有键
以分组到组1
和值
到组2
。
(\w+)=([\w\s]+)(?=[,\s]+)
看看怎么了 works here 。
关于regex - 如何将一组值与组 1 相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27034688/