【问题标题】:Java regex matching with or clause [duplicate]与或子句匹配的Java正则表达式[重复]
【发布时间】:2016-09-07 07:34:36
【问题描述】:

我有以下代码

String valuepairName = "sc_mpl_MAX_AUD_TIME_To_20_Val.$$DATE_TO_LOAD";
boolean result = valuepairName.matches("sc_mpl_MAX_AUD_TIME_To_(20|32|82)_Val.$$DATE_TO_LOAD");

结果评估为假,但我看不到错误。 这一定很微不足道,因此它让我发疯:(

【问题讨论】:

    标签: java regex string matcher


    【解决方案1】:

    您需要单独转义每个$(或使用pattern.quote)($ 是正则表达式中的一个特殊字符)。使用

    boolean result = valuepairName.matches("sc_mpl_MAX_AUD_TIME_To_(20|32|82)_Val.\\$\\$DATE_TO_LOAD");

    【讨论】:

    • 这行得通。没想到逃避那些美元符号。非常感谢! :)
    • @4Kings - 正如 LukStorms 所提到的,您可能也想转义 .
    猜你喜欢
    • 2018-01-23
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多