[英]Why Javascript string.replace(“\n\t”,“xxx”) replaces “\n\t” with “\nxxx”?
我希望在txt
文件中用"xxx"
替换"\\n\\t"
:
"数字多功能光盘 DVD shùzì"
我这样做: str.replace("\\n\\t","xxx")
方法匹配所需的部分,但离开\\n
部分,只替换\\t
为'xxx'
xxx'.WHY?
为什么在VSCOde
使用crtl+F
并且它像魅力一样工作但在代码中却没有。
首先, str.replace("a","b")
仅替换JavaScript中的第一个匹配项。 要替换所有这些,您需要使用带有g
修饰符的正则表达式。 所以,你可以先尝试str.replace(/\\n\\t/g,"xxx")
。
接下来,为什么它在VSCode中有效? 在VSCode正则表达式中, \\n
匹配在VSCode应用程序右下角选择的任何换行符序列。 在这种情况下,它在PCRE,Java,Onigmo等中用作\\R
由于可以有许多行结束序列,您可以考虑将VSCode \\n
“转换”为(?:\\r\\n|[\\r\\n\\x0B\\x0C\\x85\
\
])
,以匹配任何单个Unicode换行符顺序和使用
s = s.replace(/(?:\r\n|[\r\n\x0B\x0C\x85\u2028\u2029])\t/g, '')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.