当前位置: 首页 > 知识库问答 >
问题:

用反斜杠替换所有未转义的字符匹配项

燕俊明
2023-03-14

我使用regex将其他regexs(或regexs?)中的()替换为()(?:)以将它们转换为不匹配的组。我的表达式假定没有使用(?x结构,如下所示:

(
  [^\\]     - Not backslash character
  |^        - Or string beginning
)
(?:
  [\(]      - a bracket
)

不幸的是,如果有两个匹配项紧挨着,这就不起作用了,就像下面这样:如何((\s+能\s+做)(\s+i)?)?

有了lookbehinds,解决方案很简单:

/(?<=[^\\]|^)[\(]/g

共有1个答案

苏宜人
2023-03-14

通过反转使用lookbehind:

function revStr(str) {
    return str.split('').reverse().join('');
}

var rx = /[(](?=[^\\]|$)/g;
var subst = ":?(";

var data = "how((\\s+can|\\s+do)(\\s+i)?)?";
var res = revStr(revStr(data).replace(rx, subst)); 
document.getElementById("res").value = res;
<input id="res" />
 类似资料:
  • 问题内容: 我需要在路径字符串中替换为,但是以下代码失败。 有什么有用的建议吗? 问题答案: 使用函数filepath.ToSlash将操作系统路径分隔符替换为路径中的“ /”。 在Windows上,函数返回。在其他操作系统上,该函数按原样返回path参数。

  • 我想使用方法发送POST请求,但是我的JSON有一些国际字符,比如surunn。 不幸的是,我的WebAPI在从格式解码这个字符串时遇到了一些问题:。 使用时,我的API可以很好地处理非转义字符串和unicode转义字符串:。 我尝试了此操作,但在将转换为unicode后,转义了: 我有两个反斜杠字符串: 我试图用一个反斜杠替换两个反斜杠,但没有成功: 我该如何替换它们?

  • 问题内容: 我该怎么做反斜杠的字符串替换。 输入源字符串: 在上面的字符串中,我想用“ /”替换“ \ /”; 更换后的预期产量: 我从第三方获得源字符串,因此可以控制字符串的格式。 这就是我尝试过的 试用1: 异常靠近索引1的意外内部错误\ 试用2: 无异常,但不执行必需的替换。什么都不做。 试用3: 无异常,但不执行必需的替换。什么都不做。 问题答案: 是不可变的-您在其上调用的每个方法都不会

  • 问题内容: 我有一个字符串“ \\ u003c”,它属于UTF-8字符集。由于存在双反斜杠,因此我无法将其解码为unicode。如何从“ \\ u003c”获取“ \ u003c”?我正在使用Java。 我尝试过 但无法实现我想要的。 这是我的代码 文件的内容是 \ u003c 问题答案: 不知道您是否仍在寻找解决问题的方法(因为您已经接受了答案),但是我仍然会添加我的答案作为针对 所述问题 的可

  • 所以,我在Node.js中使用multer,它给出了上传图像的反斜杠路径,但这不起作用,因为我需要将其转换为URL。 这是我得到的输出: 但是,我想用正斜杠替换图像前的反斜杠。 我试过这个: 但是,它只是去掉了反斜杠: 附:我知道这个网站上有这样的问题,但他们没有帮助我。例如,multer:文件的路径是不对的对我没有帮助,所以请不要将此标记为重复问题。多谢了。

  • 问题内容: 这是一个“到底发生了什么”的问题。我实际上不需要解决方案。 我必须用双反斜杠替换字符串中的所有单反斜杠。这就是我最终要做的… …其中strRootDirectory是上面的java.lang.String。 现在,我了解了第一个参数的四个反斜杠:regex期望两个反斜杠以表示单个文字反斜杠,而Java希望它们加倍。没关系。 但是,第二个参数的八个反斜杠到底是怎么回事?替换字符串不是应该