【问题标题】:javascript regex match words with backslash [duplicate]javascript正则表达式匹配带有反斜杠的单词[重复]
【发布时间】:2016-05-19 20:04:57
【问题描述】:

我正在尝试使用反斜杠获取目录名称,但我得到了这个 目录文件夹。也无法弄清楚如何匹配反斜杠 \。

DirPath = "Directory\Folder"

val = DirPath.match(/(\w+)/)[1];

我想要的结果是这样的

目录\文件夹

【问题讨论】:

  • 您能给我们提供更多关于什么应该匹配和什么不应该匹配的信息吗?
  • 它应该匹配“目录\文件夹”。我正在将此信息提取为文本文件。测试可能看起来像这样。 "这是您的主文件夹 Directory\Folder....
  • 字符串应该是var DirPath = "Directory\\Folder",否则\ 将在字符串中被遗漏。然后,DirPath.match(/\w+/)[0] 将起作用。

标签: javascript regex match


【解决方案1】:

我的正则表达式不是最好的,但这可能有效。

([A-Z\\])\w+

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您需要知道如何匹配反斜杠,对吗?

    如果是这样,你可以转义你的反斜杠

    最终的正则表达式看起来像/(\w|\\)+/

    【讨论】:

    • 正确,我试过你的代码。还是不行。它返回没有反斜杠的数据。 DirectoryFolder,但我希望它返回 Directory\Folder
    • @azadaawaraa ,当我运行您的代码时,DirPath 中的 \ 似乎试图转义文件夹中的 F。当我将其更改为 DirPath = "Directory\\Folder"; 时,它匹配。您是手动定义 DirPath,还是从已经定义的地方获取它?
    • 我是从其他地方得到的。因此,我无法将其更改为“目录\\文件夹”。它必须保留为“目录\文件夹”。我正在从文本文件字符串中提取“目录\文件夹”。
    • 你能发布你是如何从文本文件中获取它的吗?该文本文件是如何填充的?是否有可能在将 \ 存储到文本文件之前没有对其进行转义?
    【解决方案3】:

    你会使用 ES6 吗?如果是这样,您可以使用String.raw() 静态方法:

    var DirPath = String.raw`Directory\Folder`;
    
    var re = /[\w\\]+/;
    
    document.body.textContent = DirPath.match(re);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-31
      • 2012-06-01
      • 2016-03-17
      • 2017-07-10
      • 2023-03-13
      • 2023-03-15
      • 2017-05-07
      相关资源
      最近更新 更多