Java 正则表达式允许除 ` 之外的所有字符

标签 java regex

我创建了正则表达式模式以允许 count(*) 但不允许 `count(*)`

[^`]*[Cc][Oo][Uu][Nn][Tt][(](\*)[)][^`]*

它单独工作,但如果我把它们一起传递

count(*),`count(*)`

我应该得到这场比赛,但结果相反

最佳答案

请注意[^`]*匹配或多个反引号,因此不会阻止匹配 Count(*)反引号之间的字符串。

您可以使用

(?i)(?<!`)Count\(\*\)(?!`)

或者,如果您需要将其作为整个单词进行匹配,请添加 \b在单词之前的开头:

(?i)(?<!`)\bCount\(\*\)(?!`)

请参阅regex demo

详细信息

  • (?i) - 不区分大小写的修饰符
  • (?<!`) - 否`允许紧邻当前位置的左侧。
  • \b - 单词边界
  • Count\(\*\) -Count(*)子串
  • (?!`) - 否`允许立即位于当前位置的右侧。

在 Java 中,

String regex = "(?i)(?<!`)Count\\(\\*\\)(?!`)";

关于Java 正则表达式允许除 ` 之外的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61251060/

相关文章:

python - 在 Python 中使用正则表达式提取文本

正则表达式:在模式中匹配模式 - 我想我需要使用 Positive Lookbehinds?

java - 我无法将对象从一项 Activity 转移到另一项 Activity

java - Java中Collections#sort方法的时间复杂度是多少?

javascript - 这次正则表达式如何工作?

mysql - 使用 MySQL 获取姓氏范围

javascript - RegExp测试方法中的 "g"如何交替工作?

java - 图像不会绘制到动画

java - JSP中的表达式语言不起作用

java - FileOutputStream() 不起作用?