在包含 Python 和 re.sub 的捕获组的原始字符串中转义反斜杠
escape backslash in raw string which contains a capture group in Python with re.sub
我想编写一个函数,用 LaTeX 命令替换 IP 地址到 link 终端的 IP 地址以进行 ssh 连接。如果在替换字符串的开头没有这个反斜杠,它就会起作用。我尝试了以下方法:
import re
def link_ips(content: str) -> str:
ip_regex = r'((?:[0-9]{1,3}\.){3}[0-9]{1,3})'
return re.sub(ip_regex, r'\href{ssh://}{} ', content)
print(link_ips('192.168.178.1'))
我得到了错误
re.error: bad escape \h at position 0
我预计 \href{ssh://192.168.178.1}{192.168.178.1}
我尝试了不同的转义组合方式,但无法修复。您知道如何解决它吗?
试试这个:
import re
def link_ips(content: str) -> str:
ip_regex = r'((?:[0-9]{1,3}\.){3}[0-9]{1,3})'
return re.sub(ip_regex, r'\href{ssh://}{} ', content)
print(link_ips('192.168.178.1'))
在编程语言中,反斜杠用于转义 \t
或 \n
等特殊字符,因此如果您确实需要在字符串中使用真正的反斜杠,您也必须转义该反斜杠
我想编写一个函数,用 LaTeX 命令替换 IP 地址到 link 终端的 IP 地址以进行 ssh 连接。如果在替换字符串的开头没有这个反斜杠,它就会起作用。我尝试了以下方法:
import re
def link_ips(content: str) -> str:
ip_regex = r'((?:[0-9]{1,3}\.){3}[0-9]{1,3})'
return re.sub(ip_regex, r'\href{ssh://}{} ', content)
print(link_ips('192.168.178.1'))
我得到了错误
re.error: bad escape \h at position 0
我预计 \href{ssh://192.168.178.1}{192.168.178.1}
我尝试了不同的转义组合方式,但无法修复。您知道如何解决它吗?
试试这个:
import re
def link_ips(content: str) -> str:
ip_regex = r'((?:[0-9]{1,3}\.){3}[0-9]{1,3})'
return re.sub(ip_regex, r'\href{ssh://}{} ', content)
print(link_ips('192.168.178.1'))
在编程语言中,反斜杠用于转义 \t
或 \n
等特殊字符,因此如果您确实需要在字符串中使用真正的反斜杠,您也必须转义该反斜杠