Хэштег с последующим регулярным текстом - PullRequest
1 голос
/ 26 июня 2019

Я хочу проверить, сопровождается ли хэштегом обычный текст или другой хэштег в строке python.например для случая:

"my adjectives names #Day #Night which are in the description"

, я получаю false, потому что после первого хэштега снова приходит хэштег.Но в других случаях, например

"my adjectives names #Day which is in the description" 

, я получу правду.Как я могу сделать это с помощью операций с регулярными выражениями в Python?

Я пытался:

tweet_text = "my adjectives names #Day #Night which are in the description"
pattern = re.findall(r'\B#\w*[a-zA-Z0-9]+\B#\w*[a-zA-Z0-9]*', tweet_text)
print(pattern)

, но это не дает мне никаких выходных данных.

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Пример от переводчика:

>>> import re
>>> pat = re.compile(r'(#\w+\s+){2,}')
>>>
>>> text = 'my adjectives names #Day  which are in the description'
>>> pat.search(text)
>>>
>>> text = 'my adjectives names #Day #Night which are in the description'
>>> pat.search(text)
<_sre.SRE_Match object; span=(20, 32), match='#Day #Night '>
0 голосов
/ 26 июня 2019

Для хэштегов, которые не , за которыми следует другое использование хештега:

input = "my adjectives names #Day #Night which are in the description"
matches = re.findall(r'#[^#\s]+\b(?!\s+#[^#]+)', input)
print(matches)

['#Night']

А для хэштегов, которые являются , за которыми следует другой хэштег, просто замените отрицательный прогноз на положительный:

matches = re.findall(r'#[^#\s]+\b(?=\s+#[^#]+)', input)
print(matches)

['#Day']
...