摘要:在本教程中,您将学习如何在正则表达式中使用 JavaScript 正则表达式回顾来匹配 X
如果它在 Y
之前。
JavaScript 正则表达式回顾简介
在 正则表达式 中,回顾匹配一个元素,如果它之前有另一个特定的元素。回顾具有以下语法
(?<=Y)X
在此语法中,模式匹配 X
如果它之前有 Y
。
例如,假设您想匹配数字 900
而不是数字 1
在以下字符串中
'1 computer costs $900'
Code language: JavaScript (javascript)
为此,您可以在正则表达式中使用回顾,如下所示
/(?<=\$)\d+/
在此正则表达式中
(?<=\$)
匹配一个元素,如果它之前有文字字符串$
。由于$
是正则表达式中的特殊字符,因此我们需要使用反斜杠\
来转义它。通过这样做,正则表达式引擎将\$
视为文字字符$
。\d+
匹配一个或多个数字。
以下示例说明了如何在正则表达式中使用回顾来匹配带有 $
符号之前的数字
const s = '1 computer costs $900';
const pattern = /(?<=\$)\d+/;
const match = s.match(pattern);
console.log(match);
Code language: JavaScript (javascript)
输出
[ '900', index: 18, input: '1 computer costs $900', groups: undefined ]
Code language: JSON / JSON with Comments (json)
负回顾
要否定回顾,您使用带有以下语法的负回顾
(?<!Y)X
在此语法中,正则表达式引擎匹配 X
如果它没有 Y
在它之前。以下示例使用带有负回顾的正则表达式来匹配没有 $
字母之前的数字
const s = '1 computer costs $900';
const pattern = /(?<!\$)\d+/;
const match = s.match(pattern);
console.log(match);
Code language: JavaScript (javascript)
输出
1
摘要
- 回顾
(?<!Y)X
仅当它之前是Y
时才匹配X
。 - 负回顾
(?<!Y)X
仅当它之前不是Y
时才匹配X
。
本教程对您有帮助吗?