gpt4 book ai didi

Python 正则表达式仅检查子字符串是否后跟子字符串

转载 作者:行者123 更新时间:2023-12-01 00:43:41 25 4
gpt4 key购买 nike

我想匹配以科学计数法给出的字符串中的所有数字,这是我的程序

import re
txt = '2310163 -204.1154263 -204.1159668 -204.1110188 -204E-9668 200-100'
print re.findall('([+-]?\d+\.?[eE]?[+-]?\d*)', txt)
# ^ ^
# ex sg
# allow sg only if its followed by ex

现在 200-100 不是一个有效的数字,但正则表达式匹配它,因为我已经为指数部分给出了 [+-] 。现在如何制作正则表达式,以便仅检查 [+-] 如果它后面紧跟 [eE] (如数字 -204E-9668) > ?

最佳答案

将整个科学记数部分放入可选组中,同时单独匹配可能的小数部分,之前:

[+-]?\d+(?:\.\d+)?(?:[eE][+-]\d+)?
# ^^^^^^^^^ optional decimals
# ^^^^^^^^^^^^^^^^ optional scientific notation

如果您不希望 200-100 部分中的任何一个都匹配,因为 200 就在旁边 100,然后在开头查找空格或字符串开头,在末尾查找空格或字符串结尾:

(?:(?<=^)|(?<= ))[+-]?\d+(?:\.\d+)?(?:[eE][+-]\d+)?(?= |$)

https://regex101.com/r/SdA295/1

关于Python 正则表达式仅检查子字符串是否后跟子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57159276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com