Как удалить какой-то специальный символ из слова с помощью регулярного выражения? - PullRequest
0 голосов
/ 25 января 2019

Я делю файл на слова.Я могу разбить его на слово, но в каком-то слове есть специальный символ, такой как «___».Я хочу пропустить этот специальный символ и отделить это слово от этого специального символа.

Файл, который содержит такие данные

Yahoo$$$Yahoo OK : ___GET
Gmail$$$Gmail Ok:___GET
google_data$$$Google.com.in___POST

, используя ((?!:) [. 0-9a-zA-Z \ s] \ w +) +, дает мне

Yahoo
Yahoo OK
 ___GET
Gmail
Gmail Ok
GET
google_data
Google.com.in___POST

Я не хочу, чтобы '___', а также следующая строка:

Google.com.in___POST

нужно разделить на два слова, например:

Google.com.in
POST

Можеткто-нибудь поможет мне с этим?

1 Ответ

0 голосов
/ 25 января 2019

Использование \w также будет соответствовать подчеркиванию. Глядя на данные примера, вы хотите сопоставить символы a-z или цифры, а между ними может быть пробел, точка или подчеркивание.

Вместо разделения вы можете сопоставить значения:

[0-9a-zA-Z]+(?:[._ ][0-9a-zA-Z]+)*

Пояснение

  • [0-9a-zA-Z]+ Совпадение цифры или a-z в нижнем или верхнем регистре 1+ раз
  • (?: Группа без захвата
    • [._ ] Матч а. _ или пробел
    • [0-9a-zA-Z]+ Совпадение цифры или a-z в нижнем или верхнем регистре 1+ раз
  • )* Закрыть группу захвата и повторить 0+ раз

Regex demo

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