python中的正则表达式匹配的问题?

2025-04-04 04:09:42
推荐回答(2个)
回答1:

因为\S* 是贪心匹配,尽可能多匹配非空格字符,

然后[a-zA-Z] 表示匹配到一个字母就结束

这句正则就是 以字母开始和结尾 中间有一个@的非空格字符串

回答2:

你理解错了。r"2x\+5y"这里是指对
字符串
中的"\"不做转义处理;
而正则表达式中"\+"表示的是对
正则表达式
中的"+"做转义处理,这是因为"+"在正则表达式中有特殊含义,这和字符串的转义是没有关系的。
说的更清楚一点就是,你在程序里写"\\+"或者r"\+"在内存里都是保存了一个"\"和一个"+",而正则表达式引擎只要从内存读取到一个连续的"\"和"+",就会理解为你想要匹配"+"这个字符。
所以说,如果你不在字符串前写r,那个正则表达式字符串应该这么写的:
"2x\\+5y|7y-3z"