gpt4 book ai didi

java - 正则表达式匹配所有不以 X 开头或包含 Y 的内容

转载 作者:行者123 更新时间:2023-11-30 10:00:33 26 4
gpt4 key购买 nike

我想要一个正则表达式来匹配所有不以 X 开头或包含 Y 的内容。

我目前有第一部分:^(?!X).*$

这将匹配任何不以 X 开头的内容。但是,我无法使第二部分正常工作。我在这里尝试了解决方案:

Regex match string that starts with but does not include

但没有运气。

测试用例

不匹配:

X
XBLABLA

匹配于:

XY
BLABLA

有什么想法吗?

最佳答案

你可以使用

^(?:(?!X)|.*Y).*$

参见 regex demo

在 Java 中,当使用 matches 时,开始/结束时不需要 anchor :

s.matches("(?s)(?:(?!X)|.*Y).*")

(?s) 将允许匹配包含换行符的字符串。

详情

  • ^ - 字符串的开始(隐含在匹配中)
  • (?:(?!X)|.*Y) - 不是紧跟在右边的 X 后面的位置,或者任何 0+ 个字符尽可能然后 Y
  • .* - 字符串的其余部分(如果正则表达式与 matches 一起使用,则它是必需的,而与 find 则不是必需的因为后者不需要完整的字符串匹配)
  • $ - 字符串结尾(隐含在匹配中)

关于java - 正则表达式匹配所有不以 X 开头或包含 Y 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57907073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com