Можете ли вы помочь мне понять, что следующие средства регулярных выражений:Регулярное выражение в JS
(?:.*? rv:([\w.]+))?
Так,
(?: //the pattern must be in a string, but doesn't return
. //any Unicode character except newline
* //zero or more times
? //zero or one time (how is *? different from just *)
rv: //just "rv:" apparently
[\w //any digit, an underscore, or any Latin-1 letter character
.] //...or any unicode character (are Latin-1 characters not Unicode?)
..))? //all that zero or one time
Это из "The Definitive Guide", и я ненавижу эту книгу. Некоторые примеры того, что делает и не соответствует регулярному выражению, были бы очень оценены.
Я нашел это объяснение '*?', Чтобы немного запутать. Это не вызовет никаких проблем, чтобы использовать его здесь, но я согласен, что '[^] *' лучше. Это яснее и эффективнее. Не путайте это с взглядом, который является чем-то совершенно другим. –
@AdamBergmark Я знаю о lookahead/lookbehind, но факт остается фактом: если вы используете ленивый квантификатор, двигатель регулярных выражений должен «смотреть вперед» для следующего символа. Вероятно, я должен был сказать «заглянуть». На самом деле, я отредактирую и заменим. – fge