说明
在正则表达式中,greedy
贪婪匹配找到符合正则表达式模式的字符串的最长可能部分,并将其作为匹配返回。
替代方案称为lazy
懒惰匹配,它找到符合正则表达式模式的字符串的最小可能部分。
你可以将正则表达式/t[a-z]*i/
应用于字符串"titanic"
。
这个正则表达式基本上是以t
开始的模式,以i
结尾,并且之间有一些字母。
正则表达式是默认的是greedy
贪婪匹配,所以匹配将返回["titani"]
。
它可以找到最大的子字符串,以符合该模式。
但是,你可以使用?
字符将其更改为lazy
懒惰匹配。
“titanic”匹配调整后的/t[a-z]*?i/
正则表达式会返回["ti"]
。
练习
修正正则表达式/<.*>/
以返回HTML标签<h1>
而不是文本"<h1>Winter is coming</h1>"
。
记住正则表达式中的通配符.
可匹配任何字符。
result
变量应该是一个包含<h1>
的数组。
var html = '<h1>Winter is coming</h1>';
var regular = /change/;
var result = html.match(regular);
答案
方法 | 描述 |
正则表达式 | 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 |
match() | 可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 |
特别字符 | 描述 |
---|---|
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 |
. | 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 |
var html = '<h1>Winter is coming</h1>';
// var regular = /<h1>/;
let regular = /<[.h1]*>/;
var result = html.match(regular);
result;
运行结果
["<h1>"]