一位同事正在扫描一个大脚本,寻找子串UAT(不区分大小写)。不幸的是,该脚本包含许多对“评估”的引用,无论是作为整个单词还是作为字段名称的一部分。
什么RegEx搜索模式会返回UAT的匹配项,如以下示例所示?
非常感谢
尼尔
答案 0 :(得分:1)
编辑:这个适用于OP的案例。
试试这个词:uat~(ion)
SSMS(和Visual Studio)正则表达式具有不同的负前瞻语法:~(prevent)
如果你想要uat
,你可以使用它:<uat>
。
<
和>
分别代表开头和结尾。
答案 1 :(得分:0)
fgrep -i "uat" FILE | fgrep -i -v "valuation"
有时最简单的工具可以做出惊人的事情。
但你没有指定你拥有的工具,正则表达式的味道(有很多)。你正在寻找的东西可以通过正则表达式来定义(负面外观 - (ahead|behind)
),但简单的字符串搜索和否定可以更快。
答案 2 :(得分:0)
你可以试试这个
UAT(?!ion)
这是一个消极的前瞻,可以确保UAT
不像ion
中那样valuation
。我不知道你的工具是否支持这个,以及这个规则是否足够严格以满足你的需求。
您应该激活的是不区分大小写的匹配。
答案 3 :(得分:0)
已编辑为不区分大小写且包含新要求
我认为你想要的正则表达式只是:
[Uu][aA][tT](?![iI][oO][nN])
即uat
(任何情况)未跟ion
(任何情况)