Java 应用程序引擎文档中提到的这个正则表达式应该如何解释?

Java 应用程序引擎文档中提到的这个正则表达式应该如何解释?,java,regex,google-app-engine,Java,Regex,Google App Engine,在阅读时,我遇到了以下正则表达式: [0-9A-Za-z.-]{0100}。我阅读了维基百科页面上的正则表达式,但仍然无法正确地解码这一个 App Engine文档提到了以下有关名称空间的有效字符串的内容: 如果未为命名空间指定值,则命名空间将设置为空字符串。名称空间字符串是任意的,但也限制为最多100个字母数字字符、句点、下划线和连字符。更明确地说,命名空间字符串必须与正则表达式[0-9A-Za-z.-]{0100}匹配 有人能帮我分解正则表达式,帮助我理解正则表达式中提到的模式如何满足上述名

在阅读时,我遇到了以下正则表达式:
[0-9A-Za-z.-]{0100}
。我阅读了维基百科页面上的正则表达式,但仍然无法正确地解码这一个

App Engine文档提到了以下有关名称空间的有效字符串的内容:

如果未为命名空间指定值,则命名空间将设置为空字符串。名称空间字符串是任意的,但也限制为最多100个字母数字字符、句点、下划线和连字符。更明确地说,命名空间字符串必须与正则表达式[0-9A-Za-z.-]{0100}匹配

有人能帮我分解正则表达式,帮助我理解正则表达式中提到的模式如何满足上述名称空间的先决条件吗

一如既往,非常感谢你的帮助

教一个人如何钓鱼

这里的每个人都可能会告诉您将此表达式转储到工具中,例如

您不仅可以了解表达式的含义,还可以看到调整部分表达式如何更改结果

这里另一个流行的在线工具是Debuggex可视化

教一个人如何钓鱼

这里的每个人都可能会告诉您将此表达式转储到工具中,例如

您不仅可以了解表达式的含义,还可以看到调整部分表达式如何更改结果

这里另一个流行的在线工具是Debuggex可视化


通常,方括号表示“内容之一”

0-9
A-Z
A-Z
,你可能会明白它们的意思。这些是可以配置的范围(因此,如果需要,可以执行3-7等操作)

。-
表示“句点、下划线或连字符”

所以
[0-9A-Za-z.-]
应该表示“字母数字字符、句点、下划线或连字符之一”

{0100}
只给出前一组(我想这可能是术语?)可以出现的次数(因此在本例中,0到100次,包括在内(我想))


编辑:也来看看@zx81的答案吧!从长远来看,他的建议比我的答案有用得多。

一般来说,方括号表示“其中一项内容”

0-9
A-Z
A-Z
,你可能会明白它们的意思。这些是可以配置的范围(因此,如果需要,可以执行3-7等操作)

。-
表示“句点、下划线或连字符”

所以
[0-9A-Za-z.-]
应该表示“字母数字字符、句点、下划线或连字符之一”

{0100}
只给出前一组(我想这可能是术语?)可以出现的次数(因此在本例中,0到100次,包括在内(我想))


编辑:也来看看@zx81的答案吧!从长远来看,他的建议比我的答案有用得多。

方括号表示括号内的任何字符都可以使用。这称为字符类

[abc]将匹配“a”、“b”或“c”,但不匹配“d”

还可以在字符类中指定一个范围,以指示该范围内的任何字符都应匹配

[a-e]与[abcde]的含义相同

在正则表达式中,[0-9A-Za-z.-]匹配字母数字字符、句点、下划线或连字符。0-9、A-Z和A-Z三个范围分别包括数字、小写和大写字母

花括号表示前面的字符可以多次匹配

a{3,5}表示“字符‘a’,重复3-5次”

即,它匹配“aaa”和“aaaaa”,但不匹配“aa”或“aaaaa”

我们可以将大括号与character类组合起来,表示我们希望多次匹配character类中的任何字符

[ab]{0,5}表示“a”和“b”的混合,长度介于0到5个字符之间”

即,它匹配“aa”、“bbb”、“ababa”和“”,但不匹配“ababab”或“abc”

结合这两个概念,我们可以看到正则表达式如何匹配文本描述

[0-9A-Za-z.-]{0100}表示“0-9,a-z,a-z,,u和-,长度介于0到100个字符之间的混合体”


方括号表示可以使用括号内的任何字符。这称为字符类

[abc]将匹配“a”、“b”或“c”,但不匹配“d”

还可以在字符类中指定一个范围,以指示该范围内的任何字符都应匹配

[a-e]与[abcde]的含义相同

在正则表达式中,[0-9A-Za-z.-]匹配字母数字字符、句点、下划线或连字符。0-9、A-Z和A-Z三个范围分别包括数字、小写和大写字母

花括号表示前面的字符可以多次匹配

a{3,5}表示“字符‘a’,重复3-5次”

即,它匹配“aaa”和“aaaaa”,但不匹配“aa”或“aaaaa”

我们可以将大括号与character类组合起来,表示我们希望多次匹配character类中的任何字符

[ab]{0,5}表示“a”和“b”的混合,长度介于0到5个字符之间”

即,它匹配“aa”、“bbb”、“ababa”和“”,但不匹配“ababab”或“abc”

结合这两个概念,我们可以看到正则表达式如何匹配文本描述

[0-9A-Za-z.-]{0100}表示“0-9,a-z,a-z,,u和-,长度介于0到100个字符之间的混合体”


只是想知道,是否有一些特定于Java的正则表达式的东西是regex101无法理解的?或者Java的正则表达式都很通用吗?@user3580294例如,Java对lookbehinds有一个有趣的看法,没有q