Как извлечь имена пользователей из Твитов?

Вы должны использовать фактический 0 (или другой макрос). Расширение макроса обрабатывается препроцессором C во время компиляции. Он ничего не знает о значениях переменных во время выполнения.

8
задан zx8754 28 March 2019 в 11:30
поделиться

3 ответа

Tested:

/@([a-z0-9_]+)/i

In Ruby (irb):

>> "RT @user1: who are @thing and @user2?".scan(/@([a-z0-9_]+)/i)
=> [["user1"], ["thing"], ["user2"]]

In Python:

>>> import re
>>> re.findall("@([a-z0-9_]+)", "RT @user1: who are @thing and @user2?", re.I)
['user1', 'thing', 'user2']

In PHP:

<?PHP
$matches = array();
preg_match_all(
    "/@([a-z0-9_]+)/i",
    "RT @user1: who are @thing and @user2?",
    $matches);

print_r($matches[1]);
?>

Array
(
    [0] => user1
    [1] => thing
    [2] => user2
)
17
ответ дан 5 December 2019 в 08:26
поделиться

Это должно сделать это (я использовал именованные захваты для удобства):

. +? @ ( ? [a-zA-Z0-9 _] +): [^ @] +? @ (? [^ \ s] +) [^ @] +? @ (? [a-zA-Z0-9 _] +)

0
ответ дан 5 December 2019 в 08:26
поделиться

попробуйте итератор (findall) с этим регулярным выражением:

(@[\w-]+)

пока

1
ответ дан 5 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: