/.*?/.exec("abc");//output [""]
Я думаю .*?
это не жадный, и он должен вернуться a
почему регулярное выражение. *? только соответствует пустой строке в javascript?
/.*?/.exec("abc");//output [""]
Я думаю .*?
это не жадный, и он должен вернуться a
почему регулярное выражение. *? только соответствует пустой строке в javascript?
Ну, что ожидается, так как .*
означает 0 или более, и, положив ?
, вы делаете его неживым, следовательно, он соответствует пустой строке.
Если вы хотите, чтобы соответствовать a
, то вы должны использовать:
/.+?/.exec("abc");
РАЗНИЦА является +
вместо *
что означает совпадение 1 или более символов, используя нежадным квантор.
, но в 'abc' нет пустого символа. вы имеете в виду, что он также может соответствовать позиции типа '^ $ \ b'? – looping
Да, это определенно может. В этом случае это просто соответствует '^' – anubhava
, можете ли вы показать мне некоторые статьи о '. *' Совпадении позиции? это немного странно. – looping
С помощью *
вместо, например, +
вы позволили сопоставить пустую строку как не жадный вариант.
Если вы хотите использовать только один символ, вы можете использовать '/./. Exec ('abc')' без каких-либо модификаторов –