regex - 正则表达式,仅当子字符串在字符串中,其他子字符串不在时才匹配
问题描述
所以我试图写一个正则表达式,由于某种原因我不能让它正常工作。
我想要做的是匹配字符串 1 是否在字符串中,但不是字符串 2。
例子
fault shouldn't match
bucket should match
fault bucket shouldn't match
bucket fault shouldn't match
true bucket should match
bucket true should match
到目前为止我能够来的壁橱是这个......这将在字符串中有桶的任何时候匹配,但如果字符串中有错误也会匹配
(?!fault)bucket
在此先感谢您的帮助。
解决方案
您可以使用这个否定的前瞻正则表达式:
^(?!.*\bfault\b).*\bbucket\b
- 如果在行中的任何位置找到
(?!.*\bfault\b)
完整的单词,则负前瞻表达式匹配失败fault
.*\bbucket\b
匹配bucket
行中的任何位置\b
用于单词边界
推荐阅读
- angular - 角度视图已更新到以前的迭代
- java - UnsupportedClassVersionError 尽管使用了正确的 Java 版本
- laravel - 现有对象 Laravel 的 setAttribute
- powerbi-embedded - 摆脱嵌入式 powerbi 报告的白色背景
- node.js - 当 Openshift 构建容器失败时在 Dockerfile 中安装 nvm:返回非零代码:1
- javascript - 将对象从父对象传递给子对象,以字符串角度返回对象名称
- sql-server - 导入带前导零的数据 - SQL Server
- r - 如何对空的小标题进行逻辑判断?
- .net - 在显示的表单事件中启动任务
- regex - RegEx 捕获相同搜索时间的所有变体