JavaScript – RegExp exec 方法
JavaScript中的正则表达式exec方法用于在字符串中搜索匹配项。它可以在找到第一个匹配项后停止,也可以在字符串末尾没有更多匹配项之前循环找到所有匹配项。
语法
RegExp.exec(string)
其中RegExp是一个正则表达式的对象,而string是要搜索的字符串。
示例
const regex = /ab+c/;
const str = 'abbbbc';
const result = regex.exec(str);
console.log(result);
在上面的例子中,我们创建了一个正则表达式对象并将其存储在regex变量中,然后我们将要搜索的字符串存储在str变量中。我们使用exec方法搜索匹配项,最后将结果存储在result变量中,并将其打印到控制台上。
参数
RegExp.exec(string)方法仅需一个参数,即要搜索的字符串。如果省略此参数,则返回null。
返回值
RegExp.exec(string)方法返回一个数组。如果未找到匹配项,则返回null。如果找到匹配项,则返回一个数组,其中包含原字符串中匹配项的信息,如下所示:
- 匹配的字符串
- 每个捕获组的匹配字符串
该数组还具有以下两个属性:
- index:匹配项在字符串中的索引。
- input:原始的搜索字符串。
示例
const regex = /(\w+)\s(\w+)/;
const str = 'John Smith';
const result = regex.exec(str);
console.log(result);
在上面的例子中,我们创建了一个正则表达式对象,该对象使用两个捕获组进行匹配。我们用字符串“John Smith”进行搜索,然后将结果存储在result变量中,并将其打印到控制台上。
结果数组包含匹配字符串“John Smith”和每个捕获组的相应匹配字符串“John”和“Smith”。
循环查找所有匹配项
const regex = /a/g;
const str = 'aabbccaaa';
while ((result = regex.exec(str)) !== null) {
console.log(`Found {result[0]} at index{result.index}`);
}
在这个例子中,我们使用正则表达式“/a/g”搜索字符串“aabbccaaa”,并在每次找到匹配项时将结果打印到控制台上。在while循环中,每次调用exec方法,都会找到一个新的匹配项,直到没有更多的匹配项为止。
结论
JavaScript RegExp exec方法是一个强大的字符串搜索工具。它可以用来搜索并找到字符串中的匹配项。通过使用正则表达式,我们可以创建复杂的模式来搜索特定类型的文本。使用while循环可以循环找到所有匹配项。