[.]只匹配句号

The [.] only matches periods

本文关键字:      更新时间:2023-09-26

这是在JavaScript中测试的。

我正在查找电子邮件的正则表达式,并发现这是表达式的一部分:

[-+.']

我认为.应该改为'.,但是当我测试[.]时,它只匹配周期,就像'.一样。在abc.abc@abc.com中,只匹配句号。

如何来吗?它不应该匹配除换行符以外的任何字符吗?

而且,有人能解释一下( )[ ]的分组是如何工作的吗?我有点糊涂了。谢谢!

.只匹配文字句点,因为您在类中使用它。

[...]不是一个组,它是一个字符类,它将匹配该类中的任何字符,您可以将其视为or,这意味着:

[-+.']将匹配-+.'

另一方面,(...)定义了一个捕获组,这意味着其中的匹配将被分组并"保存"以供以后使用。

如果您只想对匹配进行分组,而不是稍后使用它,则可以使用非捕获组,语法为:(? ... )

方括号表达式不是"分组",它是一个字符类,它匹配方括号内列出的集合中的任何单个字符。在方括号内,大多数元字符被视为文字,因此[.*]将匹配单个字符,该字符要么是点,要么是星号。

括号(())用于分组和捕获。(.*)将匹配任何0个或多个字符的序列,并将匹配的字符串存储在缓冲区中以备将来引用,通常是作为匹配模式稍后的反向引用(例如(a*)b'1匹配0个或多个a字符,然后是b,然后是相同数量的a的)或替换字符串中的引用。具体的语法取决于您使用的编程语言。

()是正则表达式的子模式。

[]用作字符类或字符集。

您可以告诉regex引擎只匹配几个字符中的一个。只需将要匹配的字符放在方括号之间。如果要匹配ae,则使用[ae]。您可以在gr[ae]y中使用它来匹配灰色或灰色。

在这里你会发现很好的教程

http://www.regular-expressions.info/

[- +。'] -匹配1个字符-或+或。或者,你可以用

[- +。']{2}匹配该组或

中的2个字符

[- +。']*匹配0个或多个字符或

[- +。']+匹配1个或多个字符

[]中的点与[]中的点意义不同。

点匹配单个字符,而不关心该字符是什么。唯一的例外是换行符。在[]点表示点;)

相关文章:
  • 没有找到相关文章