【发布时间】:2020-02-03 06:58:59
【问题描述】:
尝试编写一个正则表达式来检查句子是否为元字符“我需要为购买支付 50 美元,我应该使用 CASH|CC”。在这句话中,我需要确定是否存在元字符。
\\\\$ 或 ^(\\\\$)\\$。 Pattern.matches("^([\\\\$]$)", text); 识别特殊字符的正确语法是什么。我不需要替换,只需确定句子是否包含这些字符。
【问题讨论】:
-
@user85421,不能使用String.contains,需要使用元字符集进行过滤。
String text = "Cash$50"; System.out.println(text.matches("\\\\$")); boolean match = Pattern.matches("\\\\$", text); System.out.println(match);两者都打印错误 -
过滤器?但是您只要求识别(查找)?如果你想
find(),不要使用matches()(或者它必须是".*\\$.*"才能匹配任意数量的字符,一美元和任意数量的字符)并且只需要2个反斜杠 -
示例:
Pattern.compile("\\$").matcher("Cash $50").find()或Pattern.matches(".*\\$.*", "Cash $50")