一、正則表達式里非貪婪模式
正則表達式里非貪婪模式就是在匹配字符串時,儘可能少地匹配字符。在正則表達式中,非貪婪模式可以通過在量詞後面加上問號“?”來實現。
const str = "hello world";
const reg = /l.*?o/; // 等價於 /l.*o?/
const result = str.match(reg);
console.log(result); // ["lo"]
上面代碼中,正則表達式 /l.*?o/ 是非貪婪模式,它在匹配字符串 “hello world” 時,儘可能少地匹配字符。
二、正則表達式中表達非貪婪匹配
正則表達式中表達非貪婪匹配,可以通過在量詞後面加上問號“?”來達到非貪婪匹配的效果。在實際應用中,非貪婪模式通常會配合其他正則表達式元字符或者組合使用。
比如要匹配字符串 “a1b2c3d4” 中的數字,可以使用如下正則表達式:
const str = "a1b2c3d4";
const reg = /\d+?/;
const result = str.match(reg);
console.log(result); // ["1"]
上面代碼中,正則表達式 /\d+?/ 是貪婪模式,它在匹配字符串 “a1b2c3d4” 時,儘可能少地匹配數字。
三、如何表示非貪婪匹配
表示非貪婪匹配,可以通過在量詞後面加上問號“?”來達到非貪婪匹配的效果。
非貪婪模式和貪婪模式的區別在於,非貪婪模式儘可能少地匹配字符,而貪婪模式儘可能多地匹配字符。
四、正則表達式的非貪婪匹配
正則表達式的非貪婪匹配就是在匹配字符時,儘可能少地匹配字符,可以通過在量詞後面加上問號“?”來實現。
非貪婪模式通常會取代貪婪模式,因為非貪婪模式可以防止貪婪模式過度匹配字符。
五、正則表達式非匹配
正則表達式非匹配是指在匹配字符串時,匹配不包含某些字符或者某些字符串的內容。在正則表達式中,可以使用負向預查來實現非匹配。
比如要匹配字符串 “hello world, hello earth” 中除了 “world” 外的所有內容,可以使用如下正則表達式實現:
const str = "hello world, hello earth";
const reg = /hello\s(?!world).*?/;
const result = str.match(reg);
console.log(result); // ["hello earth"]
在上面的正則表達式中,使用了負向預查 (?!world)
來表示不匹配字符串 “world”。這裡需要注意的是,負向預查只會匹配不包含 “world” 的字符串,而不是整個字符串 “hello world, hello earth”。
六、正則表達式貪婪模式
正則表達式貪婪模式是指在匹配字符串時,儘可能多地匹配字符。在正則表達式中,貪婪模式可以通過量詞後面不加問號來實現。
比如要匹配字符串 “hello world” 中的 “llo wo”,可以使用如下正則表達式實現:
const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]
在這個正則表達式中,使用了貪婪模式,它在匹配字符時,儘可能多地匹配字符。
七、正則表達式匹配數字
在正則表達式中,可以使用元字符 \d
來表示匹配數字。
比如要匹配字符串 “a1b2c3d4” 中的數字,可以使用如下正則表達式實現:
const str = "a1b2c3d4";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["1"]
在這個正則表達式中,使用了元字符 \d
來表示匹配數字。
八、正則表達式懶惰匹配
正則表達式懶惰匹配是指在匹配字符串時,儘可能少地匹配字符。在正則表達式中,懶惰模式可以通過在量詞後面加上問號“?”來實現。
比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正則表達式實現:
const str = "hello world";
const reg = /l.*?o/;
const result = str.match(reg);
console.log(result); // ["llo"]
在這個正則表達式中,使用了懶惰模式,它在匹配字符時,儘可能少地匹配字符。
九、正則表達式貪心匹配
正則表達式貪心匹配是指在匹配字符串時,儘可能多地匹配字符。在正則表達式中,貪心模式可以通過量詞後面不加問號來實現。
比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正則表達式實現:
const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]
在這個正則表達式中,使用了貪心模式,它在匹配字符時,儘可能多地匹配字符。
十、正則表達式匹配非負整數
在正則表達式中,可以使用元字符 \d
和量詞 +
來表示匹配非負整數。
比如要匹配字符串 “123” 中的非負整數,可以使用如下正則表達式實現:
const str = "123";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["123"]
在這個正則表達式中,使用了元字符 \d
和量詞 +
來表示匹配非負整數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257806.html