Регулярное выражение для разбора хэштегов в Java - PullRequest
6 голосов
/ 27 августа 2009

Вот сообщение Twitter, которое я пытаюсь проанализировать (как вы можете видеть, некоторые из них не являются тегами, а являются лишь частью URL):

<code>#anothertag Arrogance and bad PR http://www.adobe.com/index.html#anchor1. John 
Nack on &#Adobe: Information about Photoshop&#169; CS3 on Snow Leopard 
#fail #design

Это регулярное выражение - это то, что у меня есть, но оно все еще использует некоторые теги url:

[##]+([A-Za-z0-9-_]+)

Ответы [ 3 ]

6 голосов
/ 27 августа 2009

Разве это не иронично, как только я публикую это, я найду ответ. Так что, если вы ищете подходящий шаблон для этого, похоже, сработает следующее:

(?: \ S | \ A) [##] + ([A-Za-z0-9 -_] +)

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

3 голосов
/ 28 августа 2009

@ Даниэль Дура: [##] это должно быть бессмысленно. Скобки [] используются для обозначения классов символов. [##] совпадает с [#]. И [##] + такой же, как [#] +.

3 голосов
/ 28 августа 2009

Я думаю, что это

(\s|\A)#(\w+)

тоже работает и немного точнее. Кстати, при работе с регулярными выражениями Java я всегда использую regexplanet для проверки своих выражений. Гораздо быстрее, чем тестирование на Java.

- Hardy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...