如何仅在大括号之外搜索正则表达式

2023-12-25

我有这个正则表达式变量:

var regexp = new RegExp(RegExp.quote(myExpression) + '\\b', 'g');

它搜索后面有空格的表达式。 (RegExp.quate() 我从中得到如何在javascript中转义正则表达式? https://stackoverflow.com/questions/2593637/how-to-escape-regular-expression-in-javascript)

我只想在大括号之外搜索它.

so if I myExpression = "cat"

我有这个字符串:

the cat { is cat { and } cat {and { another cat } } and  cat } and another cat
    ^^^                                                                    ^^^

我只想为第一只猫和最后一只猫获得匹配 - 我不希望与外花括号内的任何内容匹配。

我找到了一些正则表达式,但没有一个像我希望的那样工作。

我需要写什么才能完成它?

谢谢, 阿隆


像匹配嵌套括号这样的问题是不可能使用单个正则表达式来解决的。以下是我解决您问题的方法:

var myExpression = "cat";
var s = 'the cat {is cat { and} cat {and { another cat}}and  cat } and another cat';
arr = s.split(/(?=(?:\b|\W))\s*/g);
document.writeln("<pre>split: " + arr + "</pre>");
//prints: the,cat,{,is,cat,{,and,},cat,{,and,{,another,cat,},},and,cat,},and,another,cat
var level=0;
for (i=0; i<arr.length; i++) {
  if (level == 0 && arr[i] == myExpression)
     document.writeln("<pre>Matched: " + arr[i] + "</pre>");
  if (arr[i] == "{")
     level++;
  else if (arr[i] == "}")
     level--;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在大括号之外搜索正则表达式 的相关文章

随机推荐

  • 远程设备面板发生了什么变化?

    我正在运行 Chrome 80 在准备移动调试时 我观察到以下情况 该面板已迁移到其自己的选项卡 并且其功能已更改 我检查了变更日志 https developers google com web updates 2020 01 devto
  • 什么是? python pyodbc 模块中的意思

    import pyodbc cursor execute INSERT INTO Testing Param Seed Number Cycle Name VALUES 0 CoupleIn 是什么意思 代码中的意思是 当我尝试替换 s 代
  • Windows 10(通用 Windows 应用程序)数据验证

    我试图弄清楚如何在UWP下进行数据验证 但根据我发现的情况 基本上还没有什么可以实现的 因此 我尝试实现我的自定义验证逻辑 我现在遇到的问题是 我在一个上显示错误信息TextBlock而不是直接在特定的TextBox其中包含数据错误 这就是
  • 如何在 Swift3 中取消 DispatchQueue.main.asyncAfter(deadline: time) ? [复制]

    这个问题在这里已经有答案了 描述 我当前正在使用以下代码来查看用户是否已停止在搜索栏中输入内容 我想在每次用户立即开始输入后取消它0 5秒 Code DispatchQueue main asyncAfter deadline now 0
  • 如何简化 MouseListener 以便我没有所有这些未使用的方法?

    下面我有以下代码 这样当有人单击 关闭 时 窗口就会关闭 下面是同一菜单栏上的另一个退出按钮 只是为了冗余 稍后会更改为其他按钮 但要点如下 我的问题是 有什么办法可以让这件事变得更简单吗 我的意思是每个菜单都有四种未使用的方法 而且我还需
  • 在 C 中一次读取一行

    C 语言中可以使用哪种方法从文件中一次读取一行 我正在使用fgets功能 但不起作用 它仅读取空格分隔的标记 该怎么办 使用以下程序从文件中逐行获取 include
  • htaccess 在包含 HTTP 451 参数时“中断”

    对于我的网页 我有一个 htaccess文档看起来像这样
  • Python:读取临时文件时返回空字符串

    我需要从字符串创建一个文件 以便可以将其用作 Django 中电子邮件的附件 经过一番谷歌搜索后 我发现了带有 TemporaryFile 的临时文件模块 但它没有按我的预期工作 以下代码返回一个空字符串 gt gt gt f tempfi
  • 我如何将数据传递到我的 SQLite 数据库中

    你好 我对编程很陌生 我最近启动了一个 IONIC 应用程序 然而我被卡住了 我想做一些类似电话簿的东西 你可以在其中获取随机的 JSON 联系人并将它们保存到你的 sqlite 数据库中 我懂了 import Storage from i
  • 如何列出包括点文件但不包括 .和 ..?

    如何得到Dir 包括点文件 例如 gitignore 但不是 and 即 有没有更好的方法可以做到 ls A split n 也许与Dir 以下解决方案很接近 但都包括 Dir glob File FNM DOTMATCH Dir 因此 以
  • 这些在 jQuery 选择器中转义方括号的不同方法有什么区别

    有什么不同在这些不同的方法之间转义 jQuery 选择器中的方括号 有正确或错误的方法 还是这两种方法都正确 我读过不同的答案 包括this https stackoverflow com questions 1466103 jquery
  • 我想知道为什么我的playerIMG无法在pygame中加载

    下面是我的代码 这是我的第一个 pygame 项目 任何帮助将不胜感激 我认为这与 def 玩家 玩家 玩家 pygame display update 代码块 尽管当我使用它时 有时它甚至不会显示我的背景对象 而只显示屏幕填充黑色 imp
  • CSS:Em 舍入误差

    最近 我重写了我正在制作的网站的 CSS 文件 并尝试使用 em 而不是 px 使大多数元素和字体的大小动态化 尺寸可以工作 有点 但至少有一个问题 当使用 em 单位作为盒子的边距 边距 0 25em 时 在 Firefox 中 我在顶部
  • 从 iPhone 模拟器获取图像

    我刚刚创建了一个图像并将其保存在 iPhone 模拟器手机库中 我想查看此图像 不是来自照片库 以从文档资源查看其属性 但我无法访问照片库的内容 Thanks Pankaj 对于 Xcode 6 模拟器图像文件现在位于 Library De
  • 是否可以从 Java 代码调用 Ant 或 NSIS 脚本?

    是否可以在运行时从 Java 代码以编程方式调用 Ant 或 NSIS 脚本 如果是这样 怎么办 You can从 Java 代码调用 ant 脚本 See 本文 http ant apache org manual running htm
  • 如何在调试字符串的函数中获取函数名称?

    我想在每次调用时输出函数名称 我可以轻松复制并粘贴函数名称 但是我想知道是否有快捷方式可以为我完成这项工作 目前我正在做 SlideInfoHeader lynxThreeFile readSlideInfoHeader QDataStre
  • 从用户电子邮件创建哈希/令牌以进行电子邮件验证

    任何人都可以帮我解答如何从用户输入 电子邮件地址 创建安全令牌 或哈希 的问题 我想制作一个用于注册的电子邮件验证系统 用户使用电子邮件地址和密码注册 我想创建一个唯一的 URL 并将其发送给用户 因此出现了问题 我将这些 安全地 存储在临
  • Android通知空指针异常

    我在活动中设置了通知 它按预期创建通知 当我返回主屏幕时 通知仍然在那里 很好 如果我单击通知 它会将我带回到创建它的活动 这太棒了 如果我单击按钮取消通知 则会收到 NullPointerException 这是电话 if notific
  • 简单的 DocumentDb 存储过程

    我正在尝试创建一个简单的 DocumentDb 存储过程以更好地理解其概念 在此示例中 我尝试返回所有 女性 用户 我是否需要关心返回单个匹配文档或多个文档 我的用户对象如下所示 id e85ee3d7 44a5 4250 a116 686
  • 如何仅在大括号之外搜索正则表达式

    我有这个正则表达式变量 var regexp new RegExp RegExp quote myExpression b g 它搜索后面有空格的表达式 RegExp quate 我从中得到如何在javascript中转义正则表达式 htt