Разобраться с '#' через регулярное выражение - PullRequest
0 голосов
/ 13 июня 2011

Быстрый вопрос, я пытался сопоставить любое слово, содержащее «#» из списка строк, и удалить его, но я не знаю, как с этим справиться. играл на http://regexhero.net/tester/, пытаясь, но безрезультатно.

В сущности, если он встретит #ff или что-то еще, я просто переопределю их.

какие-нибудь идеи по поводу использования Регулярного выражения?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 13 июня 2011

Не используйте регулярные выражения - просто используйте string.replace - это намного быстрее.

0 голосов
/ 13 июня 2011

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

Таким образом, если вы извлекаете статусы, содержащие хэш-теги из Twitter, вам больше не нужно искать их самостоятельно.Теперь вы можете указать параметр include_entities , чтобы Twitter автоматически вызывал упоминания, ссылки и хэштеги (если вызываемый метод, например, statuses / show , поддерживает этот параметр.

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

(^|[^0-9A-Z&/]+)(#|\uFF03)([0-9A-Z_]*[A-Z_]+[a-z0-9_\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff]*)

Подробнееи дополнительные ссылки приведены в оригинальном ответе.

0 голосов
/ 13 июня 2011

Итак, вы пытаетесь удалить любые слова, содержащие #?

Если это так, попробуйте ...

\w*#\w*

И заменить ничем, вот так ...

http://regexhero.net/tester/?id=cda1e713-bdab-4aa2-b63d-a87e9b2c9bce

apple# orange ban#ana становится orange


Но если вы просто пытаетесь удалить все экземпляры #, тогда String.Replace - лучший выбор. myString = myString.Replace("#", "");

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