构建易于阅读的模式来匹配电子邮件地址。
电子邮件地址遵循结构 username@domain.TLD,其中 username 和 domain 由用句点分隔的标识符组成。构建一个模式,它匹配由字母数字字符和 字符的任意组合组成的标识符。使用 将此模式命名为 。
identifier=asManyOfPattern(alphanumericsPattern(1) | "_", 1);
identifier=maskedPattern(identifier);
构建模式以匹配由标识符组成的域和子域。创建一个匹配指定列表中的 TLD 的模式。
subdomain=asManyOfPattern(identifier + ".") + identifier; domainName=namedPattern(identifier,"domainName"); tld="com" | "org" | "gov" | "net" | "edu";
构建一个模式来匹配电子邮件的本地部分,它匹配一个或多个用句点分隔的标识符。通过组合先前定义的各模式构建一个模式,用于匹配域、TLD 和任何可能存在的子域。使用 将其中每个模式分配给一个命名模式。
username=asManyOfPattern(identifier + ".") + identifier; domain=optionalPattern(namedPattern(subdomain) + ".") + ... domainName + "." + ... namedPattern(tld);
将所有模式组合成一个模式表达式。使用 将 、 和 分配给命名模式。
emailAddress=namedPattern(username) + "@" + namedPattern(domain);
emailPattern=namedPattern(emailAddress)
emailPattern=pattern
Matching emailAddress:
username + "@" + domain
Using named patterns:
emailAddress : username + "@" + domain
username : asManyOfPattern(identifier + ".") + identifier
domain : optionalPattern(subdomain + ".") + domainName + "." + tld
subdomain : asManyOfPattern(identifier + ".") + identifier
domainName: identifier
tld : "com" | "org" | "gov" | "net" | "edu"
Use details to show more information
创建一个包含电子邮件地址的字符串,然后从文本中提取模式。
txt="You can reach me by email at John.Smith@department.organization.org";
extract(txt,emailPattern)
ans="John.Smith@department.organization.org"
命名模式允许使用点索引以便访问命名子模式。使用点索引将特定值赋给命名模式 。
emailPattern.emailAddress.domain="mathworks.com"
emailPattern=pattern
Matching emailAddress:
username + "@" + domain
Using named patterns:
emailAddress: username + "@" + domain
username : asManyOfPattern(identifier + ".") + identifier
domain : "mathworks.com"
Use details to show more information