ToB企服应用市场:ToB评测及商务社交产业平台
标题:
正则表达式:电子邮件地点的格式详解,及常见正则表达式符号的具体表明和匹
[打印本页]
作者:
魏晓东
时间:
2024-7-21 03:26
标题:
正则表达式:电子邮件地点的格式详解,及常见正则表达式符号的具体表明和匹
一、第一部分是对该段电子邮件的详解
var Regex = /^(?:\w+\.?)*\w+@(?:\w+\.)*\w+$/;
复制代码
1.^:这个符号表示匹配输入字符串的开始位置。
2.(?:...):这是一个非捕捉组(non-capturing group),用于将正则表达式的一部分组合在一起,但不捕捉匹配的文本。这对于组织复杂的表达式很有用,特别是当你不需要从匹配的文本中提取子部分时。
3.\w+:\w 匹配任何字母数字字符(等价于 [a-zA-Z0-9_]),+ 表示匹配前面的子表达式一次或多次。因此,\w+ 匹配一个或多个字母数字字符。
4. \.?:. 匹配除换行符 \n 之外的任何单个字符,但在这里它被转义为 \.,表示匹配字面上的点(.)字符。? 表示前面的子表达式(这里是 \.)是可选的,即可以匹配0次或1次。
5.(?:\w+\.?)*:这个非捕捉组匹配一个或多个字母数字字符(\w+),后面大概跟着一个点(\.?),这个组合可以重复0次或多次(*)。这答应电子邮件地点的当地部分(@ 符号之前的部分)包罗点,如 john.doe。
6. @:字面量字符 @,用于分隔电子邮件地点的当地部分和域名部分。
7. (?:\w+\.)*:与前面的非捕捉组雷同,但这个组用于匹配域名部分。它匹配一个或多个字母数字字符(\w+),后面跟着一个点(.),这个组合可以重复0次或多次(*)。留意,这里的点没有被转义,因为它在域名部分中是必须的。
8.\w+$:匹配一个或多个字母数字字符(\w+),并且这个序列必须出现在输入字符串的末尾($)。这确保了电子邮件地点的域名部分至少包罗一个字母数字字符,并且字符串在这一点竣事。
留意
虽然这个正则表达式可以匹配许多常见的电子邮件地点格式,但它并不是完善的。比方,它不答应顶级域名(TLD)包罗连字符(如 example-domain.com),只管现代电子邮件地点和TLD规范答应这样做。此外,它也不考虑国际化电子邮件地点(IDN),这些地点大概包罗非ASCII字符。因此,在需要高度正确的电子邮件验证时,最好使用专门的库或API。
二、常见正则表达式符号的具体表明和匹配方式:
1. 基础字符
普通字符
:大多数字符(如 'a' 到 'z'、'A' 到 'Z'、'0' 到 '9'、空格、标点符号等)在正则表达式中只匹配它们自己。比方,正则表达式 cat 匹配字符串 "cat"。
2. 特别字符(元字符)
.
:匹配除换行符 \n 之外的任何单个字符。比方,a.c 可以匹配 "abc"、"a1c" 等。
^
:匹配输入字符串的开始位置。如果设置了多行标志(如某些编程语言中的 m 标志),则 ^ 还匹配每行的开始。比方,^a 匹配以 "a" 开头的字符串。
$
:匹配输入字符串的竣事位置。如果设置了多行标志,则 $ 还匹配每行的竣事。比方,a$ 匹配以 "a" 结尾的字符串。
*
:匹配前面的子表达式零次或多次。比方,zo* 可以匹配 "z"、"zoo" 等。
+
:匹配前面的子表达式一次或多次。比方,zo+ 匹配 "zo"、"zoo",但不匹配 "z"。
?
:匹配前面的子表达式零次或一次。比方,do(es)? 可以匹配 "do" 或 "does"。
{n}
:n 是一个非负整数。匹配确定的 n 次。比方,o{2} 匹配 "foo" 中的 "oo",但不匹配 "o"。
{n,}
:n 是一个非负整数。至少匹配 n 次。比方,o{2,} 不能匹配 "o",但可以匹配 "fooo" 中的全部 "o"。
{n,m}
:n 和 m 是非负整数,此中 n <= m。匹配至少 n 次,但不凌驾 m 次。比方,o{1,3} 匹配 "foooo" 中的前三个 "o"。
3. 字符类
[...]
:匹配方括号内的任何字符。比方,[aeiou] 匹配任何一个元音字母。
[^...]
:匹配不在方括号内的任何字符。比方,[^aeiou] 匹配任何一个非元音字母。
[a-z]
:匹配任何小写字母。
[A-Z]
:匹配任何大写字母。
[0-9]
:匹配任何数字,等价于 \d。
\d
:匹配一个数字字符。等价于 [0-9]。
\D
:匹配一个非数字字符。等价于 [^0-9]。
\w
:匹配任何字母数字字符(包括下划线)。等价于 [A-Za-z0-9_]。
\W
:匹配任何非字母数字字符。等价于 [^A-Za-z0-9_]。
\s
:匹配任何空白字符,包括空格、制表符、换页符等。等价于 [\f\n\r\t\v]。
\S
:匹配任何非空白字符。等价于 [^\f\n\r\t\v]。
4. 分组和引用
(...)
:捕捉组(Capturing Group),匹配并捕捉匹配的子字符串。捕捉的组可以通过反向引用(如 \1、\2 等)进行引用。
(?:...)
:非捕捉组(Non-capturing Group),仅作为整体进行匹配,但不捕捉匹配的文本。
5. 边界匹配
^ 和 $
(已在前面介绍)也用于匹配字符串的开始和竣事位置,但它们也可以表示单词的边界,具体取决于上下文和使用的正则表达式引擎。
\b
:匹配一个单词边界,即单词字符(如字母、数字、下划线)和非单词字符之间的位置。
\b示例:
匹配完整单词
:
正则表达式 \bis\b 会匹配字符串 "This is a test" 中的 "is",因为 "is" 前后都有单词边界(前面是空格,后面也是空格)。
它不会匹配 "This is" 中的 "is"(如果 "is" 后面没有空格或其他非单词字符的话),因为在这个上下文中,"is" 后面没有单词边界。但是,如果 "is" 后面紧跟的是标点符号或其他非单词字符,那么 \bis\b 仍然会匹配 "is"。
避免部分匹配
:
假设我们只想匹配单词 "in",而不希望匹配到像 "input" 这样的单词中的 "in"。使用 \bin\b 可以确保我们只匹配独立的单词 "in"。
与其他字符结合使用
:
\b\w+\b 匹配任何完整的单词(由字母、数字或下划线构成)。\w+ 匹配一个或多个单词字符,而 \b 确保我们匹配的是完整的单词。
留意
:
\b 自己不消耗任何字符,它只是指定了一个位置。因此,在匹配效果中,你不会看到 \b 作为匹配的一部分。
在某些情况下,特别是在处理包罗特别字符(如换行符)的字符串时,\b 的行为大概会受到正则表达式引擎或模式修饰符(如多行模式 m)的影响。
匹配字符串 "one, two, three" 中的全部单词:
正则表达式 \b\w+\b 可以匹配 "one"、"two" 和 "three"。
匹配以 "pro" 开头的单词:
正则表达式 \bpro\w* 可以匹配 "program"、"progress" 和 "pro"(只管 "pro" 自己只包罗单词边界和字母,但 \w* 答应匹配零个或多个单词字符)。
我会以“时”为尺,丈量自己的进步,用“嘉”言“嘉”行,积极珍惜时间,向着她一步步迈进!(眼中闪耀着坚定的光芒,透露出对将来的决心和等待)
respect!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4