【问题标题】:IntelliJ structural search regex questionsIntelliJ 结构搜索正则表达式问题
【发布时间】:2010-08-06 19:47:32
【问题描述】:

我需要匹配以小写字母开头且不以下划线结尾的变量。

我有这三个字段:

private String shouldFlag;
private String shouldntFlag_;
private String SHOULDNTFLAG;

这种模式倒过来: ^[a-z].*_$

在以下模板中与字段名一起使用:

class $Class$ { 
  $FieldType$ $FieldName$ = $Init$;
}

问题是SHOULDNTFLAG 仍然被标记。我尝试使用^[a-z].*_$|^[A-Z].*$,但它不匹配任何东西,更不用说shouldFlag。我在这里做错了什么?

【问题讨论】:

    标签: java regex intellij-idea structural-search inspections


    【解决方案1】:

    假设你的变量名只能包含 ASCII 字母和数字加上下划线,我会选择

    \b[a-z]\w*\b(?<!_)
    

    编辑:...并且,正如@Stefan 指出的那样,您需要选择“区分大小写”选项。

    【讨论】:

    • 这似乎接受了 Intelli-J 中的 SHOULDNTFLAG。看起来它将 [a-z] 字符类视为 [a-zA-Z]
    • 您需要在 SSR 中明确勾选“区分大小写”。
    • 酷,谢谢。我从未真正使用过该功能。我一直希望正则表达式驱动的搜索工具(尤其是在 IDE 和程序员的编辑器中)默认区分大小写,但它们总是让我感到惊讶。 ://
    • 我认为 Intelli-J 的 SSR 有点坏。我已经遇到了很多问题,但由于其不可预测的行为,我什至无法使用它。希望 IntelliJ 10 能够解决这些错误。
    • 如果发现bug,请提交至youtrack.jetbrains.net/issues/IDEA,否则IDEA 10将无法​​修复。
    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2011-03-19
    相关资源
    最近更新 更多