java - Java 正则表达式允许所有字符期望 `
问题描述
我创建了允许count(*)
但不允许的正则表达式模式`count(*)`
[^`]*[Cc][Oo][Uu][Nn][Tt][(](\*)[)][^`]*
它可以单独解决,但是如果我将它们一起传递
count(*),`count(*)`
我应该得到这场比赛,但恰恰相反
解决方案
请注意,[^`]*
匹配零个或多个反引号,因此不会阻止匹配Count(*)
反引号之间的字符串。
您可以使用
(?i)(?<!`)Count\(\*\)(?!`)
或者,如果您需要将其作为一个完整的单词进行匹配,请在单词\b
的开头添加:
(?i)(?<!`)\bCount\(\*\)(?!`)
查看正则表达式演示
细节
(?i)
- 不区分大小写的修饰符(?<!`)
-`
不允许紧挨当前位置的左侧。\b
- 单词边界Count\(\*\)
-Count(*)
子串(?!`)
-`
不允许立即到当前位置的右侧。
在 Java 中,
String regex = "(?i)(?<!`)Count\\(\\*\\)(?!`)";
推荐阅读
- excel - 从多列计算唯一日期
- python - 从具有过饱和像素的图像中精确检测光源中心
- sql - 将日期拆分为间隔
- javascript - Vue JS - 在项目中同时使用 Vue 2 和 Vue 3
- node.js - 在课堂内找不到课堂
- javascript - 如何在 2 个属性上使用 bcrypt
- google-apps-script - 具有多列过滤器的数组公式
- excel - VBA 代码查找值,在其旁边复制,直接粘贴或保留空白单元格
- nginx - 如何为 nginx 提供适当的文件权限以便能够成功连接到上游
- spring-integration - 从 Sftp 过滤并获取远程文件名列表