просто удалите «/» после диска, и он отлично работает.
То есть от drive.mount ('/ content / drive /') до drive.mount ('/ content / drive')
Другая вещь рассмотреть состоит в том, какой длины целевой текст, и сколько из него будет подобранным определенным количественно подвыражением. Например, если бы Вы пытались соответствовать целому <ТЕЛО> элемент в большом документе HTML, то Вы могли бы испытать желание использовать этот regex:
/<BODY>.*?<\/BODY>/is
Но это собирается сделать большую ненужную работу, соответствуя одному символу за один раз, эффективно делая отрицательное предвидение перед каждым. Вы знаете </ТЕЛО>, тег будет очень около конца документа, таким образом, умная вещь сделать состоит в том, чтобы использовать нормальный жадный quantitier; позвольте ему хлебать целый отдых документа и затем отследить в обратном порядке несколько символов, необходимых для соответствия конечному тэгу.
В большинстве случаев Вы не заметите различия в скорости между жадными и неохотными кванторами, но это - что-то для учета. Главной причиной, почему необходимо быть разумными в использовании неохотных кванторов, является та, на которую указали другие: они могут сделать это неохотно, но они будут соответствовать больше, чем Вы хотите их к тому, если это - то, что это берет для достижения полного соответствия.
Дополненный класс символов более строго определяет то, чему Вы хотите соответствовать, поэтому каждый раз, когда Вы можете, я использовать его.
Не жадный regex будет соответствовать вещам, как которые Вы, вероятно, не хотите, такие:
<A HREF="foo" NAME="foo" TARGET="_blank">foo</A>
где Ваше первое.*? соответствия
foo" NAME="foo
Обратите внимание, что Ваши примеры не эквивалентны. Ваше первое регулярное выражение не выберет ссылок, которые содержат другие теги, такой как img
или b
. Второе регулярное выражение будет, и я ожидаю, что это, вероятно, что Вы хотели так или иначе.
Помимо различия в значении, единственный недостаток, о котором я могу думать, - то, что поддержка нежадных модификаторов не вполне так распространена, как отрицание класса символов. Это более широко поддерживается, чем я думал, прежде чем я проверил, но особенно отсутствуйте на списке, GNU Grep. Если средства анализа регулярного выражения, которые Вы используете, поддерживают его, то идут вперед и используют его.
Это не о лучше или хуже. Термин, который я видел больше всего, является жадным по сравнению с нежадным, но однако Вы помещаете, они делают две разных вещи. Вы хотите использовать правильный для задачи. Т.е. выключите жадную опцию, когда Вы не захотите получать несколько соответствий в строке.
“ленивый” неправильное слово здесь. Вы имеете в виду нежадный в противоположность жадному. Нет никакого недостатка в использовании его, о котором я знаю. Но в Вашем особом случае, и при этом это не должно быть более эффективно.
Нежадный лучше, это нет? Это работает вперед, проверяя на соответствие каждый раз и останавливаясь, когда это находит один, тогда как нормальное закрытие Клини (*) работает назад соответствие остальной части входа и удаления вещей, пока это не находит соответствие.
В конце они делают разные вещи, но я думаю нежадный, превосходит по характеристикам жадный. Примите во внимание, что я не протестировал это, но теперь мне любопытно.