Javascript Regex查找前面没有特定字符的字符
我在Javascript中有以下字符串:Javascript Regex查找前面没有特定字符的字符,javascript,regex,replace,Javascript,Regex,Replace,我在Javascript中有以下字符串: var string1 = '#23 the id of this report is \\# 23'; var string2 = '# \\# \\# # \\\\# #'; 我想做一个.replace(),它用\\\\替换所有的\,但不能编写正确的正则表达式 string2的结果应该是 有什么想法吗 更新 工作解决方案: 的 的 尝试使用此替换功能 .replace(/[\\]{0,1}#/g, "\\#") 演示 var string1
var string1 = '#23 the id of this report is \\# 23';
var string2 = '# \\# \\# # \\\\# #';
我想做一个.replace()
,它用\\\\
替换所有的\
,但不能编写正确的正则表达式
string2
的结果应该是
有什么想法吗
更新
工作解决方案:
- 的
- 的
尝试使用此替换功能
.replace(/[\\]{0,1}#/g, "\\#")
演示
var string1='#23此报告的id为\\#23';
警报(string1.replace(/[\\]{0,1}\\\\\/g,“\\\\\\\”));
变量string2='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
警报(string2.replace(/[\\]{0,1}\\\\\/g,“\\\\\\”));
变量string3='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';
警报(string3.replace(/[\\]{0,1}\\\\\\/g,“\\\\\\\”))代码>尝试使用此替换函数
.replace(/[\\]{0,1}#/g, "\\#")
演示
var string1='#23此报告的id为\\#23';
警报(string1.replace(/[\\]{0,1}\\\\\/g,“\\\\\\\”));
变量string2='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
警报(string2.replace(/[\\]{0,1}\\\\\/g,“\\\\\\”));
变量string3='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';
警报(string3.replace(/[\\]{0,1}\\\\\\/g,“\\\\\\\”))代码>这个正则表达式似乎有效
(\\\\?)?#
注意:-我假设\\\\\\
将被替换为\\\\\\\\
。如果希望输出为\\\\\\\\\
,则可以使用
(\\\\)?#
这个正则表达式似乎有效
(\\\\?)?#
注意:-我假设\\\\\\
将被替换为\\\\\\\\
。如果希望输出为\\\\\\\\\
,则可以使用
(\\\\)?#
通过首先将哈希标记与它们前面的反斜杠进行匹配,然后作为替代方法(使用交替操作符,也称为管道,|
)尝试单独使用哈希标记,该标记将与它前面没有
反斜杠的哈希标记相匹配,并在任何情况下替换为\\\
:
var string2='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
var-maybe\u-escape=/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/g;
var result=string2.replace(可能转义为“\\\”);
document.getElementById('result').textContent=JSON.stringify(result)代码>
您可以先将哈希标记与它们前面的反斜杠进行匹配,然后作为替代方法(使用交替操作符,也称为管道,
)尝试单独使用哈希标记,因此,它将匹配前面没有反斜杠的哈希标记,并在任何情况下替换为\\code>:
var string2='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
var-maybe\u-escape=/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/g;
var result=string2.replace(可能转义为“\\\”);
document.getElementById('result').textContent=JSON.stringify(result)代码>
这是可行的,但我只想通过纯正则表达式来实现,其他什么都不想+1但是,您在if
语句的两个分支中都返回了相同的内容?[\\]
与\\有何不同?[\\]{0,1}
与[\\]有何不同?
?与\\?
?@torazaburo有何不同!更新代码,非常简单:)谢谢你的指点out@RamtinSoltani现在使用纯regexIt进行检查在\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>上进行测试时,会给出这个结果,但我只想用纯regex来完成,其他什么都不做+1但是,您在if
语句的两个分支中都返回了相同的内容?[\\]
与\\有何不同?[\\]{0,1}
与[\\]有何不同?
?与\\?
?@torazaburo有何不同!更新代码,非常简单:)谢谢你的指点out@RamtinSoltani现在使用纯regexIt进行检查,当在\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>上进行测试时,您的意思是两个物理反斜杠吗,或者一个?你为什么需要这个?我工作中的一些奇怪的任务。你说的`\\`是指两个物理反斜杠,还是一个?你为什么需要这个?我工作中的一些奇怪的任务。我已经更新了给定的字符串。不要介意带有奇怪反斜杠的标签。这个答案是可行的,但它也用\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>替换了\\\\\\\\\\\\\\\\\\\\\\。在这个给定字符串\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>中,什么正则表达式只针对没有两个或更多反斜杠的hashtags?@RamtinSoltani是lookbehinds的一种替代方法,因为javascript不支持lookbehinds。.否则就太难了easier@RamtinSoltani直到我明白你所说的\
应该是替换为\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>(不是文字反斜杠,两个意思是一个转义反斜杠)我已经更新了给定的字符串。不要介意带有奇怪反斜杠的标签。这个答案是可行的,但它也用\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>替换了\\\\\\\\\\\\\\\\\\\\\\。在这个给定字符串\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>中,什么正则表达式只针对没有两个或更多反斜杠的hashtags?@RamtinSoltani是lookbehinds的一种替代方法,因为javascript不支持lookbehinds。.否则就太难了easier@RamtinSoltani直到我明白你所说的\
应该是替换为\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>(不是文字反斜杠,两个表示一个转义反斜杠)\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\引用您假设的单个转义反斜杠。问题是如何在hashtag前面没有反斜杠(当然用\\\\
替换它们),就是这样。谢谢。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\引用您假设的单个转义反斜杠。这个