繁体   English   中英

要匹配的正则表达式:!$%^&*()_ + |〜-=`{} []:“;'<>?,。/

[英]Regex to Match: !$%^&*()_+|~-=`{}[]:";'<>?,./

我知道这是一个几乎相同名称的重复问题,但是,我至今无法在Android中使用它!

我正在尝试:正则表达式匹配符号:

public Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\\";'<>?,.\/]");

但是,这不起作用。 有谁知道应用此模式的正确方法?

PS在Regex上完成菜鸟。 :D

从这里开始-正则表达式以匹配符号:!$%^&*()_ + |〜-=`{} []:“;'<>?,。/

错误消息: Syntax error on token(s), misplaced construct(s)

更新:添加了额外的反斜杠...修复了很多em,现在从;获取错误; 向前。 使用Eclipse。

我认为您的问题是“

public Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]");
                                                                  ^

它以字符串结尾,因此您应该对其进行转义。 另外,您需要在斜杠前删除反斜杠,这不是特殊字符。

public Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,./]");

好的,再一次,您想匹配反斜杠,而不是逃避斜杠,那么我们到这里:

public Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\\\/]");

现在,它的答案与jdb的答案相同,因此对他+1表示更快。

那个怎么样?

Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\\\/]");

在字符类中,只有[]具有特殊含义,因此您需要对其进行转义。 另外,在Java中,您需要使用额外的反斜杠进行转义。 这就是Java特有的问题。 因此,您需要使用\\\\[\\\\] 是的,您需要在字符串文字中使用单个反斜杠转义"

除此之外,连字符在中间某个地方使用时也具有特殊含义。 如果要匹配hyphen ,则需要在末尾使用它。

其余字符,无需转义。 它们只是普通字符。

因此,您的模式应如下所示:

Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,./]");

如果还要匹配backslash (\\) ,请使用以下命令:-

Pattern bsymbols = Pattern.compile("[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\\\/]");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM