为了账号安全,请及时绑定邮箱和手机立即绑定

如何匹配匹配字符串前不包含单词的字符串?

如何匹配匹配字符串前不包含单词的字符串?

C#
当年话下 2023-05-14 16:46:20
阅读堆栈溢出示例后,我找不到适用于以下测试用例的有效解决方案。我需要将正在测试的模式与字符串列表相匹配。如果 word1 存在,模式应该匹配,但 word2 在它之前不存在。任何角色都可以存在于两者之间。示例: pattern - 如果单词tty_osc存在并且mov_osc在它之前的任何地方都不存在则匹配。abd.defg.mov_osc.ccr.tty_osc.val- 不匹配...tty_osc存在但mov_osc之前也存在tty_oscabd.defg.ccr.tty_osc.val- 匹配 -tty_osc存在,mov_osc之前没有我尝试了以下负面回顾正则表达式 -(?<!mov_osc).*tty_osc
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以使用否定前瞻来断言右边的不是您禁止的词,后跟接受的词。

^(?!.*?\bmov_osc\b.*?\btty_osc\b).*?\btty_osc\b.*$

正则表达式演示


查看完整回答
反对 回复 2023-05-14
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

你需要把.*消极的目光移到背后 (?<!mov_osc.*)tty_osc。否则它将匹配 tty_osc 之前的所有内容,而后面的否定查找只会检查字符串的开头。

RegexStorm.Net 演示


查看完整回答
反对 回复 2023-05-14
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信