Python - 正则表达式不仅匹配我想要的

Python - Regex matching not only what I want

提问人:EarthAndMoon 提问时间:5/18/2023 更新时间:5/18/2023 访问量:39

问:

我制作了这个正则表达式,它应该匹配正整数和负整数 (3, -7)、浮点数 (-6.3, 3.14)、科学记数法 (-17e3, 10e-10, 53e7) 和“不完整”数字 (.1, -.7e+10):

([+-]?(([0-9])*(\.[0-9]*)?)([eE][+-]?[0-9]*)?)

它还匹配我不想要的字符串,例如 、 和 空字符串。"e10""e""10e"

如何在不破坏整个事情的情况下修复正则表达式?

Python 浮点整 科学记数法

评论

1赞 Scott Hunter 5/18/2023
你能提供一个规则,我可以用它来判断你不想要哪些字符串吗?或者更好的是,一些不言而喻的要求需要添加到你的正则表达式中?
3赞 Michael Butscher 5/18/2023
尝试([+-]?([0-9]+\.?|[0-9]*(\.[0-9]+))([eE][+-]?[0-9]+)?)
1赞 Barmar 5/18/2023
您应该在正则表达式中使用替代项来匹配不同的可能性。否则,很难表示不能同时省略模式的两个可选部分。
0赞 Andrew 5/18/2023
尝试 ([+-]?([0-9][0-9]*\.?|[0-9]*(\.[0-9]+))([eE][+-]?[0-9][0-9]*)?)– (类似于 Michael Butscher 的 sol'n,但没有“+”)

答: 暂无答案