2024-06-01 06:41:14 发布
网友
我试图使用Python正则表达式在字符串中找到一个数学表达式。问题是,正斜杠似乎做了一些意想不到的事情。我本以为[\w\d\s+-/*]*可以用来查找数学表达式,但它也会由于某种原因找到逗号。一点实验表明,正斜杠是罪魁祸首。例如:
[\w\d\s+-/*]*
>>> import re >>> re.sub(r'[/]*', 'a', 'bcd') 'abacada'
显然,正斜杠在字符之间匹配(即使它在字符类中,但只有当星号存在时)。背上的伤口逃不掉。我找了一段时间,没有找到任何文件。有什么线索吗?
r'[/]*'表示“匹配0个或多个正斜杠”。“b”&;“c”和“c”&;“d”之间正好有0个正斜杠。因此,这些匹配项被替换为“a”。
查看Python的re模块上的here for documentation。
re
我认为它不是/,而是第一个字符类中的-:[+-/]匹配+,/和两者之间的任何ASCII值,它们碰巧包含逗号。
/
-
[+-/]
+
也许文档中的提示有助于:
If you want to include a ']' or a '-' inside a set, precede it with a backslash, or place it as the first character.
你是说用'a'替换zero或更多斜杠。所以它确实用'a'替换了每个“no character”。:)
'a'
您可能是指[/]+,即一个或多个斜杠。
[/]+
编辑:阅读Ber's answer以获得原始问题的解决方案。我没有仔细阅读整个问题。
r'[/]*'表示“匹配0个或多个正斜杠”。“b”&;“c”和“c”&;“d”之间正好有0个正斜杠。因此,这些匹配项被替换为“a”。
查看Python的
re
模块上的here for documentation。我认为它不是
/
,而是第一个字符类中的-
:[+-/]
匹配+
,/
和两者之间的任何ASCII值,它们碰巧包含逗号。也许文档中的提示有助于:
你是说用
'a'
替换zero或更多斜杠。所以它确实用'a'
替换了每个“no character”。:)您可能是指
[/]+
,即一个或多个斜杠。编辑:阅读Ber's answer以获得原始问题的解决方案。我没有仔细阅读整个问题。
相关问题 更多 >
编程相关推荐