JavaScript 正则表达式回顾

摘要:在本教程中,您将学习如何在正则表达式中使用 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
本教程对您有帮助吗?