负向超前行为不符合预期
作者:互联网
尝试使用正则表达式从字符串中解析参数:“-a 1 -b -5.1”.
输出应具有2个带有值的标志:标志a的值为1,b标志的-5.1.
当我尝试(-(? 您需要使(?< value>)变得懒惰,并将否定前瞻转变为肯定前瞻. 这是我的尝试: 说明: 您可能想知道为什么要使用正面的前瞻而不是负面的前瞻.这是因为 ?只要匹配的东西匹配就会停止匹配.这就是为什么我们期待找到$|的原因-[a-zA-Z],如果我们找到一个,停止匹配! 我也将空格字符移出了值组.我假设您不希望该值包含空格? 相关文章 转载注明原文:负向超前行为不符合预期 - 代码日志-(?<flag>[a-zA-Z]) (?<value>.+?)(?=$| -[a-zA-Z])
点击查看更多相关文章
解决方法:
您需要使(?< value>)变得懒惰,并将否定前瞻转变为肯定前瞻.
这是我的尝试:
-(?<flag>[a-zA-Z]) (?<value>.+?)(?=$| -[a-zA-Z])
说明:
您可能想知道为什么要使用正面的前瞻而不是负面的前瞻.这是因为 ?只要匹配的东西匹配就会停止匹配.这就是为什么我们期待找到$|的原因-[a-zA-Z],如果我们找到一个,停止匹配!
我也将空格字符移出了值组.我假设您不希望该值包含空格?
标签:regex-lookarounds,c,regex 来源: https://codeday.me/bug/20191025/1925078.html