2024-09-29 19:25:49 发布
网友
http://regex101.com/r/oU6eI5/1,在这里测试seam可以工作,但是当我放入Python时,匹配整个str
str = galley/files/tew/tewt/tweqt/ re.sub('^.+/+([^/]+/$)', "\1", str)
我要“tweqt/”
您需要在替换中使用原始字符串:
str = galley/files/tew/tewt/tweqt/ re.sub('^.+/+([^/]+/$)', r"\1", str) # ^
否则,将得到转义字符\1。例如在我的主机上,它是一个小笑脸。在
\1
如果您不想对字符串进行原始处理,则必须转义反斜杠:
另外值得注意的是,对正则表达式字符串进行原始处理并使用一致的引号是一种很好的做法,因此我建议您使用:
re.sub(r'^.+/+([^/]+/$)', r'\1', str)
其他注意事项
匹配(使用re.search)而不是使用re.sub可能更简单:
re.search
re.sub
re.search(r'[^/]+/$', str).group() # => tweqt/
您可能希望使用str之外的另一个变量名,因为这将覆盖现有函数str()。在
str
str()
最好将模式或正则表达式定义为原始字符串。在
>>> import re >>> s = "galley/files/tew/tewt/tweqt/" >>> m = re.sub(r'^.+/+([^/]+/$)', r'\1', s) ^ ^ >>> m 'tweqt/'
您需要在替换中使用原始字符串:
否则,将得到转义字符
\1
。例如在我的主机上,它是一个小笑脸。在如果您不想对字符串进行原始处理,则必须转义反斜杠:
^{pr2}$另外值得注意的是,对正则表达式字符串进行原始处理并使用一致的引号是一种很好的做法,因此我建议您使用:
其他注意事项
匹配(使用
re.search
)而不是使用re.sub
可能更简单:您可能希望使用
str
之外的另一个变量名,因为这将覆盖现有函数str()
。在最好将模式或正则表达式定义为原始字符串。在
相关问题 更多 >
编程相关推荐