Regex查找前面没有特定字符的字符
Regex to find characters not having a certain character before them
我在Javascript中有这些字符串:
var string1 = '#23 the id of this report is ''# 23';
var string2 = '# ''# ''# # ''''# #';
我想做一个.replace()
,用''#
替换所有#
而不使用''
,但无法编写正确的正则表达式。
string2
的结果应为''# ''# ''# ''# ''''# ''#
有什么想法吗?
更新
工作解决方案:
- torazaburo的回答
- gurvinder372的答案
尝试使用此替换函数
.replace(/['']{0,1}#/g, "''#")
演示
var string1 = '#23 the id of this report is ''# 23';
alert(string1.replace(/['']{0,1}#/g, "''#"));
var string2 = '# ''# '''# '# ''''# #';
alert(string2.replace(/['']{0,1}#/g, "''#"));
var string3 = '# ''# ''# # ''''# #';
alert(string3.replace(/['']{0,1}#/g, "''#"));
您可以通过首先将哈希标记与前反斜杠匹配来将前无反斜杠的哈希标记作为目标,然后作为替代(使用交替运算符,也称为管道,|
)尝试自己的哈希标记,因此,它将匹配前无反斜线的哈希标记,并在任何一种情况下用'#
:替换
var string2 = '# ''# ''# # ''''# #';
var maybe_escaped = /''#|#/g;
var result = string2.replace(maybe_escaped, '''#');
document.getElementById('result').textContent = JSON.stringify(result);
<div id='result' style="font-family: monospace; "></div>
另一种方法是使用下面的正则表达式,尽管上面的正则表达式可能被认为更好地体现了问题的负面本质,并且更具普遍性。
/''?#/
此正则表达式似乎可以使用
(''''?)?#
Regex演示
注意:-我假设'#
将被替换为''#
。如果您希望输出为'''#
,则可以使用
('''')?#
相关文章:
- 使用RegExp查找url中的字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- Regex查找前面没有特定字符的字符
- 在Javascript中查找子字符串,并前置/附加一些字符
- 使用正则表达式查找字符串中的不匹配字符
- 使用正则表达式查找字符模式
- 使用正则表达式在方括号内查找多个字符
- 使用for循环查找字符串中的特定字符
- javascript查找字符串并删除以下所有字符
- 使用javascript查找小数前的整数(不包括特殊字符)
- Java Script Regex-查找脚本中是否只有允许的字符
- Regex以查找除输入的最后n个字符之外的匹配项
- 查找字符&用Javascript制作Capitlise
- 查找上一个<p>在第n个字符之后
- 在javascript中查找特定单词(正则表达式)中的字符类型
- 查找字符串中类型的最后一个字符
- 查找字符串中出现的字符数
- 查找模式并仅删除几个字符
- 如何查找输入标签中的字符数