很抱歉这个可能很愚蠢的问题,但我正在尝试创建一个以“\begin”开头的字符串(我正在构建一个 LaTeX 文档)。我不知道如何让它正确解析。只需将 \
替换为 \\
在 "\end"
中就可以正常工作 - 我只需输入 "\\end"
.问题似乎是在正则表达式中使用 \b
。我认为 "\\"+ "begin"
可能有效,但这似乎给出了相同的行为。考虑到我可能会遇到很多这样的情况,一般来说,解决这个问题的最佳方法是什么?
最佳答案
\
是 JavaScript 字符串中的转义字符。如果您希望字符串包含 \
字符,则必须使用额外的 \
字符:
'\\'
计算结果为包含 \
的字符串。
\
是 JavaScript 正则表达式中的转义字符。如果您希望正则表达式包含 \
字符,则必须使用额外的 \
字符:
/\\/
计算结果为与 \
因此,使用字符串构建的正则表达式需要对 \
字符进行两次转义,一次用于字符串,一次用于正则表达式:
new RegExp('\\\\')
计算结果为包含 \\
的字符串,该字符串计算结果为与 \
匹配的正则表达式>.
要使正则表达式匹配 \begin
,您只需在正则表达式后面添加 begin
后缀:
/\\begin/ //regex literal
new RegExp('\\\\begin') //regex constructor
关于Javascript\\b字符串转义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961789/