2014-01-25 4 views
0

В настоящее время REGEX я использую следующий:Javascript Regex может не совпадать с многоточием

var sentences = fulltext.match(/[^\.!\?]+[\.!\?]+/g); 

Это возвращает массив с предложениями разделить включая пробелы (мне нужны все символы). Проблема в том, что она не работает с эллипсисом «...», и я не думаю, что это не так с другими нетрадиционными формами пунктуации.

Как я могу исправить свой REGEX, чтобы соответствовать этой и другим формам пунктуации?

Есть ли noob дружественный пример управляемый гид по REGEX там?

+2

Многоточие также имеют свою собственную точку символ/код - [U + 2026] (HTTPS: //en.wikipedia.org/wiki/Ellipsis#Computer_representations) o r '\ u2026' - которые отличаются от 3 последовательных'. '(U + 002E). –

+0

Возможный дубликат [Javascript регулярное выражение для пунктуации (международный)?] (Http://stackoverflow.com/questions/7576945/javascript-regular-expression-for-punctuation-international) –

ответ

1

Unicode эллипсиса является \u2026.

Таким образом, вы можете использовать \u2026 для соответствия многоточию.

Код:

var fulltext= "First sentence… Second sentence. "; 
fulltext.match(/([^.?!;\u2026]+[.?!;\u2026]+)/g); 

ВЫВОД

["First sentence…", " Second sentence."] 

DEMO and Explanation

+0

Спасибо за демонстрацию + Пояснение. – Belohlavek

3

Вы можете просто добавить эллипсис (и любые другие знаки пунктуации) к вашим наборам символов.

var input = "First sentence… Second sentence. "; 
input.match(/[^\.\?!;…]+[\.\?!;…]+/g); 

Результат:

["First sentence…", " Second sentence."] 
Смежные вопросы