Что означает?= Означает в регулярном выражении?

Можно узнать что ?= значит в регулярном выражении? Например, каково его значение в этом выражении:

(?=.*\d).

3 ответа

Решение

?= является положительным взглядом, тип утверждения нулевой ширины. Это говорит о том, что за захваченным совпадением должно следовать то, что находится в скобках, но эта часть не фиксируется.

Ваш пример означает, что за соответствием должно следовать ноль или более символов, а затем цифра (но опять же эта часть не фиксируется).

(?= шаблон) - положительное прогнозное утверждение нулевой ширины. Например, /\w+(?=\t)/ соответствует слову, за которым следует вкладка, без включения вкладки в $&,

Выражение ниже найдет последний номер, заданный в имени файла перед его расширением (исключая точку (.)).

'\d+(?=\.\w+$)'

file4.txt будет соответствовать 4.

file123.txt будет соответствовать 123.

demo.3.js будет соответствовать 3 и так далее.

Если вы хотите замаскировать номер кредитной карты (кроме) последних 4 цифр / символов, вы можете использовать ?= в вашем регулярном выражении.

cc = "1234-5678"
cc.replace(/.(?=....)/g, '#');

cc = #####5678

Другие вопросы по тегам