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

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

(?=.*\d).

Ответы

Ответ 1

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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