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

仅当所需字符串之前不直接包含字符时,正则表达式才匹配

敖永丰
2023-03-14
问题内容

我正在尝试解决此CodingBat问题:

如果给定的字符串包含外观“ xyz”,而xyz并非直接以句点(。)开头,则返回true。因此,“ xxyz”算在内,但“ x.xyz”算不上。

xyzThere(“ abcxyz”)→真
xyzThere(“ abc.xyz”)→假
xyzThere(“ xyz.abc”)→真

我正在尝试使用正则表达式解决此问题,但不确定如何处理where the xyz is not directly preceeded by a period要求。

我没有约束的问题的解决方案是:

public boolean xyzThere(String str) {
    return str.matches(".*xyz.*");
}

任何想法如何使用正则表达式处理上述约束?


问题答案:

否定的字符类应该可以解决问题: str.matches(".*(?:^|[^.])xyz.*")

在这里,我们使用一个非捕获组(?:^|[^.])来确保我们在字符串的开头^或非句点的任何位置进行匹配[^.]



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

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

  • 问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)

  • 我有以下字符串: 我只想匹配,如果它是在一个卷发括号之后。如何使用python实现这一点。我尝试了以下方法,但没有效果: 目标结果将是简单的(不包括花括号)。

  • 我有一些xml文件,希望删除除特定字符串以外的所有内容。 StackOverflow上还有很多类似的问题,但都不适用于我的文件,在尝试了几个小时不同的正则表达式后,我想寻求帮助。 到目前为止,部分成功但并非完全成功的最接近的正则表达式是: xml文件的示例: 我使用regex101,因此可以将示例粘贴在那里,以了解为什么rex只能部分工作。简而言之,它与第一次出现的不匹配,但与第二次出现的匹配。我

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