用Java解释这个正则表达式
java中的正则表达式:用Java解释这个正则表达式,java,regex,Java,Regex,java中的正则表达式: 'String'.replaceAll("([aeioucgjkqsxyzbfpvwdtmn1234567890])\\1+", "$1") 有人能解释一下不同字符的作用吗?如果括号中列出的所有字母后面有一个\1,则括号中列出的所有字母都将替换为$1,这是一个反斜杠。加号(+)表示1个或多个。括号[…]内1个或多个字符的任何序列都将替换为$1 例如,这将从字符串中删除所有这些字符: System.out.println(Str.replaceAll(([AEIOUCG
'String'.replaceAll("([aeioucgjkqsxyzbfpvwdtmn1234567890])\\1+", "$1")
有人能解释一下不同字符的作用吗?如果括号中列出的所有字母后面有一个\1,则括号中列出的所有字母都将替换为$1,这是一个反斜杠。加号(+)表示1个或多个。括号[…]内1个或多个字符的任何序列都将替换为$1 例如,这将从字符串中删除所有这些字符:
System.out.println(Str.replaceAll(([AEIOUCGJKQSXYZBFPFPWDTMN1234567890])\1+,“”) 解释:
aaaa
匹配列表中的单个字符[AEIOUCGJKQSXYZBFPFVWDTMN1234567890]
捕获char类周围的组将捕获该单个字符([AEIOUCGJKQSXYZBFPWDTMN1234567890])
\1+
是一个指针,用于引用组索引1中的字符。在我们的例子中,捕获单个字符,因此它引用该单个字符<代码>\1+表示组索引1中出现的一个或多个字符\1
aaaa
上面的正则表达式将捕获第一个字符,并检查以下一个或多个字符是否与捕获的第一个字符相同。如果是,则整个重复字符将替换为单个字符(位于组索引1内),即aaaa
替换为单个a
也许正则表达式教程是一个好的第一步?或者在任何在线正则表达式评估器上进行一些实验?有些甚至是图形化的,有助于分解。我知道什么是正则表达式,但我不完全了解,特别是\\1+partregular-expressions.info。您意识到,如果您只需将鼠标悬停在您创建的正则表达式标记上并单击“信息”,您需要的所有“信息”都在那里?或者:(公平地说,看起来其他一些人也可以从进修课程中受益。)