gpt4 book ai didi

java - 正则表达式匹配字符串列表并忽略字符串列表

转载 作者:行者123 更新时间:2023-11-29 04:23:34 25 4
gpt4 key购买 nike

我正在寻找满足以下要求的正则表达式

  1. 忽略所有以zzTest开头的字符串
  2. 匹配所有包含单词rest且不以zzTest开头的字符串

输入字符串:

zzTest.docs:service1
zzTest.rest:service2
Regression.rest:service1
Regression.docs.service2

预期输出:

Regression.rest:service1

尝试使用正则表达式\s*(?!\w*(zzTest)\w*)\w*(rest)\w*\s*它在输入字符串中没有点 (.) 时起作用

感谢任何帮助

最佳答案

你可以使用

s.matches("(?!zzTest).*rest.*")

该模式将按如下方式工作:

  • ^ - 字符串的开始(隐含在匹配中)
  • (?!zzTest) - 不是以 zzTest
  • 开头
  • .*rest.* - 除换行字符外的任何 0+ 个字符,尽可能多,直到行中的最后一个 rest,然后是该行的其余部分。
  • $ -(隐含在 matches() 中):字符串结尾。

要匹配整个字符串,请在模式的开头添加 (?s)

要扩展它,请使用交替:

s.matches("(?!zzTest|yyTest|etc).*(?:rest|more here).*")

要添加全词匹配支持,请在单词周围使用 \b:

s.matches("(?!\\b(?:zzTest|yyTest|etc)\\b).*\\b(?:rest|more here)\\b.*")

关于java - 正则表达式匹配字符串列表并忽略字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47649890/

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