Удаление разметки ссылок в тексте - PullRequest
0 голосов
/ 30 декабря 2018

Я чищу текст из Reddit.Когда вы включаете ссылку в самотекст Reddit, вы делаете это так: [the text you read](https://website.com/to/go/to).Я хотел бы использовать регулярное выражение для удаления гиперссылки (например, https://website.com/to/go/to), но сохранить the text you read.

Вот еще один пример:

[the podcast list](https://www.reddit.com/r/datascience/wiki/podcasts)

Iхотелось бы сохранить: the podcast list.

Как я могу сделать это с библиотекой Python re?Что является подходящим регулярным выражением?

1 Ответ

0 голосов
/ 30 декабря 2018

Я создал начальную попытку для вашего запрошенного регулярного выражения:

(?<=\[.+\])\(.+\)

Первая часть (?<=...) - это взгляд назад, что означает, что он ищет его, но не соответствует ему.Вы можете использовать это регулярное выражение вместе с re метод sub .Вы также можете увидеть значения всех символов регулярного выражения здесь .

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

(?<=\[.+\])\(https?:\/\/.+\)

Проблема в том, что если ссылка, которую они предоставляют, не запускается с http или https, она не будет работать.

После этого вам нужно будет снять квадратные скобки, возможно, просто убрав все квадратные скобки.скобки работают нормально для вас.


Редактировать 1:

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

\[(.+)\]\(.+\)

Затем вы можете заменить первую захваченную группу (в квадратных скобках) обратно на использование:

re.sub(r"\[(.+)\]\(.+\)", r"\1", original_text)

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

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