Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex查找前面没有特定字符的字符_Javascript_Regex_Replace - Fatal编程技术网

Javascript Regex查找前面没有特定字符的字符

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

我在Javascript中有以下字符串:

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前面没有反斜杠(当然用
\\\\
替换它们),就是这样。谢谢。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\引用您假设的单个转义反斜杠。这个