gpt4 book ai didi

Python 正则表达式处理点字符

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:40 25 4
gpt4 key购买 nike

在 python 中使用正则表达式时,我遇到了一个场景。我想做的是,如果字符串有运算符,我想在运算符前后添加空格。

s = 'H>=ll<=o=wo+rl-d.my name!'
op = 'H >= ll <= o = wo + rl - d.my name!'

看起来很直接,所以我想到了以下表达式:

re.sub(r'((<=)|(>=)|[+-=*/])+',' \\1 ',r'H>=ll<=o=wo+rl-d.myname!')

但我使用它的结果是:

'H >= ll <= o = wo + rl - d . my name!'

它在遇到的每个点 (.) 后添加一个空格,即使我没有在我的正则表达式中提到它。

我正在使用 python 2.7,如果您能对此有所了解,我将不胜感激。

最佳答案

圆点周围有空格的原因是-。具体就是[+-=],这是一个字符类,字符从+一直到=,其中包括.

为避免这种情况,您必须使用 \- 转义 -,例如

re.sub(r'((<=)|(>=)|[+\-=*/])+',' \\1 ',r'H>=ll<=o=wo+rl-d.myname!')

正如@LaurentLAPORTE 提到的,您还可以将 - 放在字符类的开头或结尾,例如[-+=*/][+=*/-] 都可以解决问题。

关于Python 正则表达式处理点字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39859662/

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