2013-09-16 2 views
0

Я новичок в Python и пытаюсь выяснить, насколько способ соответствовать предложению с переменными словамипитона матч с переменным текстом с использованием регулярных выражений

примеров «Файл test.bed в успешно загружено»

Теперь здесь, в приведенном выше предложении, имя файла изменится (возможно, sample.png), а остальные слова будут одинаковыми.

Может ли кто-нибудь сообщить мне, что является лучшим способом, используя регулярное выражение для соответствия предложению.

благодаря

+0

Покажите свою проблему, пожалуйста. – Jerry

+1

Действительно ли это предложение, с «in» вместо «is»? (Здесь важно быть точным, потому что регулярное выражение не собирается определять, что вы на самом деле имели в виду, и дайте ему слайд.) – abarnert

+1

Если вы действительно не знаете базовые элементы регулярного выражения, подобные этому, вы должны либо (а) работать через учебник (по крайней мере, [Регулярное выражение HOWTO] (http://docs.python.org/3.3/howto/regex.html#regex-howto) в документах, но, возможно, что-то более дружелюбное, вы можете найти в Интернете), или (b) не использовать регулярные выражения, пока вы не захотите это сделать. В противном случае вы просто копируете и вставляете магический код, не понимая, что он делает, что делает невозможным отладку или улучшение кода. – abarnert

ответ

3

Если вы просто хотите, чтобы соответствовать ничего там:

r'The file (.+?) in successfully uploaded' 

. означает любой символ, а + означает один или несколько предшествующих.

? означает сделать это, не взахлеб, так что если у вас есть два предложения в ряд, как "The file foo.bar is successfully uploaded. The file spam.eggs is successfully uploaded.", это будет соответствовать "foo.bar", а затем "spam.eggs", а не просто найти один матч "foo.bar is successfully uploaded. The file spam.eggs". Возможно, вам это не понадобится в вашем приложении.

Наконец, круглые скобки заключаются в том, как вы отмечаете часть шаблона как группу, которую вы можете извлечь из объекта соответствия.

Но что, если вы хотите совместить только действительные имена файлов? Ну, вам нужно придумать правило для действительных имен файлов, которые могут отличаться в зависимости от вашего приложения. Это зависит от Windows? Это то, что вы просматриваете, цитируя имена файлов с пробелами? И так далее.

Смежные вопросы