Python 3.x Can';不要代替美元符号
我正在尝试编写一个python脚本,将普通文本转换为latex代码。所以我必须分别用\$、\&和\%替换$、&和%。此外,由于文本是从Wikipedia复制的,我必须用空白字符串替换方括号内的内容。这是我的密码:Python 3.x Can';不要代替美元符号,python-3.x,regex,Python 3.x,Regex,我正在尝试编写一个python脚本,将普通文本转换为latex代码。所以我必须分别用\$、\&和\%替换$、&和%。此外,由于文本是从Wikipedia复制的,我必须用空白字符串替换方括号内的内容。这是我的密码: import re square_bracket = r"\[[^\]]*\]" def formatting(text): no_brackets = re.sub(square_bracket, '', text) and_ = re.sub('&',
import re
square_bracket = r"\[[^\]]*\]"
def formatting(text):
no_brackets = re.sub(square_bracket, '', text)
and_ = re.sub('&', '\\&', no_brackets)
percentage_ = re.sub('%', '\\%', and_)
dollar_ = re.sub('$', '\\$', percentage_)
return dollar_
print(formatting("aca & akhil[3255d] 56 $ 72 %"))
输出为:
[Command: python3 -u /home/aca/Documents/python/basics/test.py]
aca \& akhil 56 $ 72 \$
[Finished in 0.131s]
我可以接受方括号,&和%。但美元符号将普通文本转换为latex中的数学论点,这使得事情变得混乱。如何修复此问题?在正则表达式中,
$
是一个结束锚,因此需要转义它:
dollar_ = re.sub('\$', '\\\\$', percentage_)
# ^
# here
如果您这样做,输出将是您期望的:
aca \& akhil 56 \\$ 72 \%
在正则表达式中,
$
是一个结束锚点,因此需要对其进行转义:
dollar_ = re.sub('\$', '\\\\$', percentage_)
# ^
# here
如果您这样做,输出将是您期望的:
aca \& akhil 56 \\$ 72 \%
谢谢成功了。但是“\S”创建了无效的转义序列“\$”。我可以用“\\$”来解决这个问题。谢谢。成功了。但是“\S”创建了无效的转义序列“\$”。我可以用“\\$”来解决这个问题。