2017-02-09 2 views
-2

Начнем с того, что я уже прочитал документацию python о выражении регулярного выражения, я не могу переписать свое регулярное выражение для использования с python re. Таким образом, это является одним из основных регулярных выражений:python regex не распознает шаблон

\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_* 

Я знаю, что это нормально для моей цели, потому что с это соответствует задать расширенную прекрасно, что я хочу, но питон продолжает возвращать None для каждой анализируемой строки.

EDIT ожидается выход все, начиная с или без _, это все прописные, начиная с буквы и после того, как может быть, возможно, буквы или цифры, также _: XXX, XX_X, _XXX, _XX_XXXX_ XX_ где вход является строка с строчными буквами и пробелами.

+0

Добавьте строки, которые считаете нужным и не должны совпадать. – dawg

+0

Что вводит строка для соответствия регулярному выражению? каков ожидаемый результат? –

+1

'[A-Z | 0-9 | \ _]' подозревается: изменение не работает в классе символов. Он совпадает с SINGLE-символом внутри '[]' only – dawg

ответ

1

Прежде всего, ваше регулярное выражение может быть улучшить, я могу предложить вам что-то больше похоже на _?[A-Z][A-Z0-9_]+

Как сказал rugie, вам не нужно бежать _ и [A-Z|0-9|\_] не будет действительно работать, как вы хотите (см. комментарий dawg).

Вторичный, какую функцию модуля re вы использовали? Если это re.match, оно, вероятно, не сработает с re.match с начала строки. Вы хотите узнать, находится ли ваш шаблон в строке или уловить все шаблоны в этой строке? Вы можете использовать re.search для первого и re.findall для второго.

Сообщите нам, что вы попробовали, и мы сможем вам помочь.

+0

Мне удалось использовать findall и переписать лучшее (pythonic) регулярное выражение, и теперь я могу найти то, что я находясь в поиске! спасибо, Ляд! –

+0

Рад узнать :) – Liad

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