如何解决REGEX 在一行中匹配一个关键字的数字
如果您可以使用 Python正则表达式 PyPi 模块,那么您可以多次出现:
(?<=^range\b[\s:$-\d.]*)\d+(?:\.\d+)?
(?<=
正面向后看,断言左边是
例子
import regex
strings = [
"range: $0.82",
"range:0.82",
"range: 0.82 - 0.85",
"range : 0.82 - 0.85",
"range : 0.82 - 0.85",
"range 0.82 0.85"
]
pattern = r"(?<=^range\b[\s:$-\d.]*)\d+(?:\.\d+)?"
for s in strings:
print (regex.findall(pattern, s))
['0.82']
['0.82']
['0.82', '0.85']
['0.82', '0.85']
['0.82', '0.85']
['0.82', '0.85']
解决方法
我尝试了许多模式,但无法获得正确的结果。range
当行开头有关键字时,我只想匹配浮点数。我的问题是后面range
可以跟一个:
,:
,等等。
我最好的尝试是使用两种模式:
#1。(?i)(?<=range[: ])[:a-zA-Z0-9.$ -]+
#2。[0-9.]+
首先使用模式#1 运行正则表达式,然后获取模式#1 的输出并使用模式#2 再次运行正则表达式
我怎样才能在一个模式中做到这一点?非常感谢
还有一件事:我的代码是 Python
输入: range: $0.82
–> 预期输出:0.82
输入: range:0.82
–> 预期输出:0.82
输入: range: 0.82 - 0.85
–> 预期输出:0.82
,0.85
输入: range : 0.82 - 0.85
–> 预期输出:0.82
,0.85
输入: range : 0.82 - 0.85
–> 预期输出:0.82
,0.85
输入: range 0.82 0.85
–> 预期输出:0.82
,0.85
table = df.reset_index().groupby(pd.Grouper(key=’index’,freq=‘1D’))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。