Извлекать разговоры с помощью регулярных выражений - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть такой текст:

[агент]: Добро пожаловать в банк ABC Меня зовут Асиф.Чем я могу вам помочь [cust]: я получил дополнительную оплату по моей кредитной карте, я не буду оплачивать ее, пожалуйста, удалите ее [агент]: Хорошо, я могу перевести вызов в режим удержания [cust]: Это очень неотзывчивое поведениесторона банка

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

1 Ответ

1 голос
/ 29 апреля 2019

Либо:

\[cust\]:((?:(?!\[\w+\]:).)*)

или

(?s)\[cust\]:(.*?)(?=\[\w+\]:|$)

https://regex101.com/r/RT2O4y/1

Контрольные показатели:

Regex1:   \[cust\]:((?:(?!\[\w+\]:).)*)
Options:  < none >
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   2
Elapsed Time:    1.37 s,   1372.69 ms,   1372693 µs
Matches per sec:   72,849


Regex2:   (?s)\[cust\]:(.*?)(?=\[\w+\]:|$)
Options:  < none >
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   2
Elapsed Time:    0.92 s,   918.17 ms,   918175 µs
Matches per sec:   108,911
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...