Регулярное выражение для подсчета предложений в тексте, исключающее точку в адресе электронной почты - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть предложение типа Мой адрес электронной почты: xxxx@xxx.xxx.

Мой Java RegExp это ". +? [\. \? \!] + " Этот regExp видит два предложения Мой адрес электронной почты: xxxx@xxx. и xxx.

Как мне изменить мой regExp, чтобы он не считал точки электронной почты в конце предложения?

Ответы [ 4 ]

1 голос
/ 21 апреля 2011

Вы не можете надежно. Рассмотрим этот пример:

My email is someone@subdomain.com.hi!

Это электронная почта someone@subdomain.com.hi или просто someone@subdomain.com?

Единственное, что вы можете сделать, если ваши тексты написаны грамотными людьми, обнаружить предложение, заканчивающееся одним из ., ?, ! (или, возможно, другим) плюс некоторое пространство .

<ч />

А теперь разрушить все надежды. Как насчет этого текста? Сколько у него предложений?

Он крикнул «Стоп!», А затем потянул его пистолет.

0 голосов
/ 04 июля 2012

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

pattern=/^[a-zA-Z0-9_-.]+@[a-zA-Z0-9_-.]+\.[a-zA-Z]{2,4}$/

Пример:

  • name@gmail.co.uk
  • name1.name2@gmail.com
  • name1_name2@hotmail.co.ir
  • и т.д.
0 голосов
/ 21 апреля 2011

Решите, что составляет конец предложения, я бы, вероятно, использовал «.с последующим пробелом, табуляцией или концом строки.

0 голосов
/ 21 апреля 2011

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

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