Java正则表达式“;[.]”;vs"&引用;
我试图在Java中使用一些正则表达式,在调试代码时遇到了这个问题Java正则表达式“;[.]”;vs"&引用;,java,regex,Java,Regex,我试图在Java中使用一些正则表达式,在调试代码时遇到了这个问题 [.]和之间有什么区别 我很惊讶,.at会匹配“cat”,但[.]at不会匹配。[.]会逐字匹配一个点(),而会匹配除换行符以外的任何字符(\n)(除非使用模式) 您还可以使用\.(“\\.”,如果您使用java字符串文字)来逐字匹配点。[和]是元字符,允许您定义点。方括号内的任何内容均按字面解释。您还可以包含多个字符: [.=*&^$] // Matches any single character from the l
[.]
和
之间有什么区别
我很惊讶,
.at
会匹配“cat”,但[.]at
不会匹配。[.]
会逐字匹配一个点(
),而
会匹配除换行符以外的任何字符(\n
)(除非使用模式)
您还可以使用
\.
(“\\.”
,如果您使用java字符串文字)来逐字匹配点。[
和]
是元字符,允许您定义点。方括号内的任何内容均按字面解释。您还可以包含多个字符:
[.=*&^$] // Matches any single character from the list '.','=','*','&','^','$'
关于[…]
语法,您需要了解两件具体的事情:
- 组开头的
符号有一个特殊的含义:它反转组匹配的内容。例如,^
匹配除点以外的任何字符[^.]
- 两个字符之间的破折号
表示两个字符之间的任何代码点。例如,-
匹配任何一个大写字母。您可以多次使用破折号-例如,[A-Z]
表示“任何单个大写或小写字母或数字”[A-Za-z0-9]
上述两种结构(
^
和-
)几乎在所有正则表达式引擎中都是通用的;有些引擎(如Java)只定义特定于这些引擎的内容。您是否阅读过任何正则表达式教程
是一个元字符,它匹配除换行符以外的任何字符。在字符类中,它不是元字符。是的,我一直在看oracle教程<代码>[abc]是与a、b或c匹配的字符类。那么为什么[.]
的行为与
的行为不一样呢?啊,我不明白在它自己的字符类中,它不再是元字符了。谢谢。任何字符,但新行字符(默认情况下至少;)也可以找到;)@sp00m这是真的-谢谢,我编辑了答案来提及它。