使用正则表达式匹配两个字符串之间的字符串,同时排除字符串

2024-04-07

继从上一个问题 https://stackoverflow.com/questions/1990790/using-regex-to-match-string-between-two-strings我在其中问:

如何使用正则表达式来匹配两个字符串之间的文本,其中这两个字符串本身包含两个其他字符串,并且内部和外部封闭字符串之间有任意数量的文本?

我得到了这个答案:

/outer-start.*?inner-start(.*?)inner-end.*?outer-end/

我现在想知道如何从外部封闭字符串和内部封闭字符串之间的文本中排除某些字符串。

例如,如果我有这样的文字:

外起点一些文字内启动 我想要的文字 内端更多文字外端

我希望“一些文本”和“更多文本”不包含“不需要的”一词。

换句话说,这是可以的:

外起点一些想要的文字内启动 我想要的文字 内端更多想要的文字外端

但这不行:

外起点一些不需要的文字内启动 我想要的文字 内端更多不需要的文本外端

或者进一步解释一下,上面的答案中外部和内部分隔符之间的表达式应该排除“不需要”一词。

使用正则表达式很容易匹配吗?


替换第一个和最后一个(但不替换中间).*? with (?:(?!unwanted).)*?。 (在哪里(?:...)是一个非捕获群,并且(?!...)是负向前瞻。)

然而,这很快就会在任何实际(而不是示例)使用中出现极端情况和警告,并且如果您询问您真正在做什么(使用真实的示例,即使它们是简化的,而不是编造的示例) ),您可能会得到更好的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式匹配两个字符串之间的字符串,同时排除字符串 的相关文章

  • 使用基于 DFA(线性时间)正则表达式捕获组:可能吗?

    是否可以使用基于 DFA 的正则表达式实现捕获组 同时保持相对于输入长度的线性时间复杂度 直觉上我认为不是 因为子集构造过程不知道它可能落在哪个捕获组内 但这是我第一次意识到这可能是一个潜在的问题 所以我不知道 是否可以使用基于 DFA 的
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 日期 (yyyy/MM/dd) 或年份 (yyyy) 的正则表达式验证器

    我想要正则验证表达式来验证仅输入年份 yyyy 或日期 yyyy MM dd 它不得接受 21 23323 它应该接受任何四位整数值 例如 2012 并且还应该仅接受年份 yyyy MM dd 格式 您不需要为此使用正则表达式 我会用Dat
  • [\b] 退格正则表达式有什么用?

    b 显然匹配退格字符 我无法理解字符串如何包含退格字符 有人能给我一个具体的例子来说明如何使用它吗 非常感谢 虽然所有其他人总体上都是正确的 即 b是单词边界 b does表示字符类中的退格键 b 这确实会匹配退格字符 它只是一个可以出现在
  • 匹配没有周围字符列表的单词列表

    我有这个正则表达式 one common word or another 除非这两个单词相邻 否则它匹配得很好 One one s more word word common word or another word more anothe
  • 如何让 Vim 匹配不以七位数字开头的行?

    我有一个大约 1000 行的文件 除个别行外 所有行均以七位数字开头 我需要捕捉这些行并将它们与前一行实际连接起来 我已经成功地能够使用以下正则表达式模式匹配以七位数字开头的任何行 d 7 我似乎无法让它匹配任何一行不匹配不过 这种模式确实
  • 用javascript检查瑞典语字符?

    如何重写此代码以检查所有字符 包括瑞典语 和 字符 alphaExp a zA Z 以上仅检查英文字母 瑞典语在 Z 之后包含 其余部分与英语相同 Thanks 你试过了吗 a zA Z 在我的火狐浏览器中 a zA Z test 评估为真
  • 使用带有字边界的 mgsub 函数作为替换值

    我试图用空格替换向量中字符串元素的子字符串 以下是我们正在考虑的向量 test lt c PALMA DE MALLORCA THE RICH AND THE POOR A CAMEL IN THE DESERT SANTANDER SL
  • django 尝试了这些 url 模式

    当我尝试访问我的站点时 它会给出以下信息 使用 mysite urls 中定义的 URLconf Django 按以下顺序尝试了这些 URL 模式 管理员 当前 URL 与其中任何一个都不匹配 如果我访问该网站并附加 admin 它会将我带
  • while 循环中 regex.exec() 赋值的更好解决方案

    这里有更好的解决方案吗 我尽量避免里面的作业while但仍然能够循环匹配并使用捕获的组 var match var CSS URL PATTERN url s s s s gm while match CSS URL PATTERN exe
  • Mongo 正则表达式用于“不匹配”或反向[重复]

    这个问题在这里已经有答案了 我的 mongo 文档都包含一个名为templateName 有一些包含该值的文档 a SystemDefaultTemplate b SystemDefaultTemplate c SystemDefaultT
  • sed 中的正则表达式用于在一条语句中进行多个替换

    我想清理一些输入并用可接受的输入替换几个字符 例如一个丹麦人 with aa 使用多个语句可以轻松完成此操作 例如 ae aa oe 但由于工具限制 我希望能够在单个正则表达式中完成此操作 我可以捕获所有相关案例 但我的替换不能按我想要的方
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单
  • perl 和 java 正则表达式功能之间有什么区别?

    perl 和 java 在支持哪些正则表达式术语方面有什么区别 这个问题仅涉及正则表达式 并且特别排除了how可以使用正则表达式 即使用正则表达式的可用函数 方法 以及语言之间的语法差异 例如java要求转义反斜杠等 特别令人感兴趣的是 j
  • 正则表达式匹配 JWT

    我没有正则表达式的经验 我请求你的帮助 我需要一个正则表达式来捕获以下字符串中的 JWT contextJwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 eyJzdWIiOiJIZWxsbyB5b3UiLCJ
  • PHP:如何使用 nl2br() 和 HTML Purifier 保持换行?

    Issue 使用时HTML 净化器 http htmlpurifier org 为了处理用户输入的内容 换行符不会被转换为 br tags 考虑以下用户输入的内容 Lorem ipsum dolor sit amet This is ano
  • 颠倒句子中的“英语”单词

    我有一个字符串 其中可能使用多种语言 例如 and this is in English this is going to be continued 我只想反转英语单词 所以结果应该是这样的 English in is this and c
  • 正则表达式 - 从字符串末尾搜索

    我如何从字符串末尾定位某些内容 complexthing 50 other 50 MORE 50 我想以 50 结尾 但是这个 复杂的东西 可以以 结尾 所以在这种情况下 我不能在 处打断 因为乞求可能会让它感到困惑 所以对我来说最简单的正
  • mod_rewrite 可以转换任意数量、任意名称的参数吗?

    我对 mod rewrite 完全是个新手 我想做的事情听起来很简单 我不想拥有domain com script php a 1 b 2 c 3 我想要 domain com script a 1 b 2 c 3 问题是我的脚本采用各种组

随机推荐