如何在 JavaScript 正則表示式中訪問匹配的組?
本教程將教會我們如何訪問 JavaScript 正則表示式中的匹配組。**正則表示式**是字元序列,也稱為**RegEx**,它用於在字串中匹配特定模式。
字串中特定模式的匹配可能不止一個。為了獲取所有匹配的出現次數,我們在本教程中解釋了以下不同的方法。
我們還將在本文中瞭解正則表示式的各種用法。
在建立 Regex 時使用“g”標誌
當我們在正則表示式中新增**“g”**作為**修飾符**時,它會在給定字串中搜索 Regex 模式的所有出現次數,並返回可迭代物件。我們可以遍歷該物件並將其轉換為陣列以訪問所有匹配的組。
語法
使用者可以使用以下語法在正則表示式中使用“g”修飾符。
let str = "digit 01, 39 digits";
let regexp = /[0-9]/g;
let group = str.match(regexp);
for (const element of group) {
index.innerHTML += element + '<br/>';
}在上述語法中,組是一個可迭代物件,但它不是陣列。因此,我們無法直接訪問物件中的任何元素。我們可以將其轉換為陣列或遍歷物件並訪問每個元素。在這裡,我們使用了 for 迴圈來遍歷物件並訪問所有元素。
示例
在本例中,我們建立了一個基本的正則表示式來查詢 0 到 9 之間所有數字的出現次數。我們使用了“g”作為修飾符來查詢所有元素,它會從字串中返回 0 到 9 之間的所有元素。如果任何數字出現多次,它將返回多次。
我們使用了match()方法來匹配模式的所有出現次數,但使用者也可以使用matchAll()方法。
<html>
<head>
<title> Example - Access all the matched groups in Regular expression.
</title>
</head>
<body>
<h4> All matching digits between 0 to 9 using 'g' flag </h4>
<div id="index"> </div>
<script>
let index = document.getElementById("index");
const str = "digit 01, 39 digits";
const regexp = /[0-9]/g;
const group = str.match(regexp);
for (const element of group) {
index.innerHTML += element + '<br/>';
}
</script>
</body>
</html>在上面的輸出中,使用者可以看到它從給定的字串中返回了 0 到 9 之間的所有元素。
訪問命名組
在本節中,我們將在正則表示式中建立一個組併為其指定一個唯一的名稱。這樣可以輕鬆檢查特定組的模式是否在字串中。此外,我們還可以獲取特定組的所有模式。
語法
使用者可以按照以下語法在正則表示式中建立組。
?<group_name> // to add group in the regular expression.
/(?<group1>[0-2]{2})/gi在上述語法中,使用者可以看到我們建立了一個名為 group1 的組,其中包含 0 到 2 之間的數字,長度為 2。
示例
以下示例演示了在正則表示式中建立組。我們可以使用可迭代物件訪問匹配出現次數的組。
<html>
<head>
<title>Example - Access all the matched groups in Regular expression.
</title>
</head>
<body>
<h4> Accessing named groups in Regular expression. </h4>
<div id="index"> </div>
<script>
let index = document.getElementById("index");
const str = "a-1 b-12 c-32 d-40";
// regular expression to find all occurence of element with length 2 digits.
let regexp = /(?<name>[a-z])-(?<total>[0-9]{2})/gi;
const group = str.matchAll(regexp);
// getting all values from the groups
for (const element of group) {
let {
name,
total
} = element.groups;
index.innerHTML += "name is " + name + ". total number of " + name + " is " + total + '. <br/>';
}
</script>
</body>
</html>結論
在本教程中,我們學習瞭如何訪問正則表示式中所有匹配的出現次數。在第一部分中,我們必須使用 match() 方法查詢匹配項,並使用“g”標誌獲取所有組。
在第二部分中,我們在正則表示式中建立了組。之後,我們匹配這些組。對於每次匹配,我們都可以獲取組的值,如示例所示。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP