当前位置: 首页 > 面试题库 >

正则表达式,查找不包括定界符的两个字符之间包含的字符串

穆博简
2023-03-14
问题内容

我需要从字符串中提取两个定界符之间包含的一组字符,而不返回定界符本身。

一个简单的例子应该会有所帮助:

目标:提取方括号之间的子字符串,而不返回括号本身。

基本字串:This is a test string [more or less]

如果我使用以下规则。前任。

\ [。*?\]

比赛是[more or less]。我只需要得到more or less(没有括号)。

有可能做到吗?


问题答案:

简单易行:

(?<=\[)(.*?)(?=\])

从技术上讲,这是使用先行和后备。请参阅前瞻和零宽度断言。该模式包括:

前面有一个[未捕获(向后看);
一个非贪婪的捕获群体。停在第一个]是不贪心的;和
后跟一个未捕获的](超前)。
另外,您也可以捕获方括号之间的内容:


\[(.*?)\]

并返回第一个捕获的组,而不是整个匹配项。



 类似资料:
  • 我将一个regex模式列表传递给< code>grep来检查syslog文件。它们通常匹配IP地址和日志条目; 这只是一个模式列表,例如我正在循环传递的“1\.2\.部分,因此我无法传递“-v”。 我很困惑试图做上述的逆,不匹配线与某个IP地址和错误!1.2.3.4.*已爆炸”将匹配除1.2.3.4告诉我它已爆炸之外的任何syslog行。我必须能够包括一个IP地址不匹配。 在Stack Overf

  • 问题内容: 当我使用某种方式时,它仍然会触发,好像连字符无效。我试着和 问题答案: 转义使用应该没问题,但是您也可以尝试将其放在字符类的开头或结尾。这应该为您工作:

  • 问题内容: 我想匹配任何不包含字符串“ DontMatchThis”的字符串。 什么是正则表达式? 问题答案: 尝试这个:

  • 我需要一个正则表达式,它匹配以单词边界结尾的表达式,但不将连字符视为边界。即获取所有匹配的表达式 但是不匹配,例如。 换句话说:我想要一个等效的词边界运算符\b,它不是使用单词字符类,而是使用扩展类:

  • 本文向大家介绍java使用正则表达式查找包含的字符串示例,包括了java使用正则表达式查找包含的字符串示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java使用正则表达式查找包含的字符串。分享给大家供大家参考,具体如下: Hello.java: eclipse运行效果图如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工

  • 问题内容: 我以前从未做过正则表达式,而且我发现它们对于处理字符串非常有用。我看到了一些教程(例如),但是我仍然不明白如何对字符串中的十六进制字符进行简单的Java正则表达式检查。 用户将在文本框中输入类似以下内容:我想知道该输入是正确的,否则,如果返回false时类似。 是否可以使用正则表达式来做到这一点,或者我是否误解了它们的工作原理? 问题答案: 是的,您可以使用正则表达式来做到这一点: 说