LINUX.ORG.RU

Регулярка в Python - не могу подсчитать количество вхождений подстроки

 ,


1

1

Есть простой код:

pdfText=r'/Hello/Page/Word'
rePages = re.compile(r'\/Page\/\W')

pagesCount=len( rePages.findall(pdfText) )
print 'Count: ' + str(pagesCount)

Результат должен быть 1, а показывает 0.

Почему?

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от panter_dsd

\W ты уверен?

Вначале пробовал \w - резыльтат тот же.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от anonymous

зачем ты эскейпишь /

Чтоб был как символ. Или в RAW строках для маски регулярки этого делать не недо?

Xintrea ★★★★★
() автор топика

Ага, в общем, так правильно:

r'/Page/\w'

Xintrea ★★★★★
() автор топика

Ничо не понял

>>> re.findall(r'/Page/', r'/Hello/Page/Word')
['/Page/']
Все ок же.

anonymous
()
Ответ на: комментарий от anonymous

В документации написано непонятно. Ценность документации - в её понятности, а не в ее наличии.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

хм, ну если даже мне всё понятно, сам понимаешь

anonymous
()
>>> import re
>>> rePages = re.compile(r'\/Page\/')
>>> pdfText=r'/Hello/Page/Word/Page/123/test/Page/'
>>> tmp = rePages.findall(pdfText)
>>> print len(tmp)
3

у меня работает.

читай https://docs.python.org/2/library/re.html

1. \W это все что не \w;

2. r'\/Page\/\W' значит что ты ищешь что-то вроде /Page/!, где ! - не буквенный символ.

irr123
()
Ответ на: комментарий от b0c0813f

Странный у тебя диалект питона :D

Вот еще один диалект:

'foopagebarpage'.match(/page/g).length
что поделаешь, если оригинал сосет:)

anonymous
()
Ответ на: комментарий от anonymous

Не знаю кто более достоин порицания, человек который не знает программирования совсем (ТС), или тот кто знает какой-то язык но судит по другим языкам основываясь на перлах первого.

'foopagebarpage'.count('page')

Использовать регулярки там где они не нужны... фу

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

С чего ты взял, что они не нужны? Возможно, ТС выложил не реальную, а упрощенную тестовую задачу, это обычная практика. Если говоришь что-то, говори по делу, твои фантазии никому не нужны.

anonymous
()
Ответ на: комментарий от anonymous

Ээй, чувак, «возможно» это ты тут фантазируешь, а в моем посте указано наиболее прямое решение вполне конкретной задачи.

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

конкретной задачи.

конкретная задача:

Регулярка в Python - не могу подсчитать количество вхождений подстроки

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.