Что означает? = Означает в регулярном выражении?
Могу ли я узнать, что означает ?=
в регулярном выражении? Например, каково его значение в этом выражении:
(?=.*\d).
Ответы
Ответ 1
?=
- это положительное выражение, тип утверждение нулевой ширины. Говорят, что захваченное совпадение должно сопровождаться тем, что находится в круглых скобках, но эта часть не захвачена.
В вашем примере означает, что для соответствия должно следовать ноль или более символов, а затем цифра (но опять-таки эта часть не фиксируется).
Ответ 2
В приведенном ниже выражении будет найдено последнее число, заданное в имени файла перед его расширением (исключая точку (.)).
'\d+(?=\.\w+$)'
file4.txt будет соответствовать 4.
file123.txt будет соответствовать 123.
demo.3.js будет соответствовать 3 и т.д.
Ответ 3
(? = pattern) - это положительное утверждение с нулевой шириной.
Например, /\w+(?=\t)/
соответствует слову, за которым следует вкладка, без включения вкладки в $&
.