регулярное выражение для удаления последней строки блока текста - PullRequest
0 голосов
/ 19 ноября 2009

как мне удалить последнюю строку из блока текста в сценарии Java без использования циклов (только с использованием регулярных выражений) например.,

"Интернет - это глобальная система взаимосвязанных компьютерных сетей, которые используют стандартный пакет Интернет-протоколов (TCP / IP) для обслуживания миллиардов пользователей по всему миру. Это сеть сетей, состоящая из миллионов частных и общественных, научных бизнес и правительственные сети && ".

В последней строке всегда есть "&&".

Ответы [ 5 ]

4 голосов
/ 19 ноября 2009
var str = "The ... and government networks&&";
str.replace(/\.[^.]+&&$/,'.');

Если под последней строкой вы имеете в виду последнее предложение. И последнее предложение не содержит точку.

2 голосов
/ 19 ноября 2009

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

string.replace(/\.[^\.]+\.?$/,'.');

If you want to be sure not to remove the only sentence, use

string.replace(/(\S+\.)[^\.]+\.?$/,'$1')

Вам понадобится более тяжелый подъем, чтобы избежать отрезания линий, имеющих сокращения с периодами, таких как мистер Джонс, доктор Спок, миссис Джонс и Сент-Эндрю. Как удалить их периоды до ампутации и заменить их после. (разделить здесь для удобства чтения)

string= string.replace(/\b(Mr|Dr|Mrs|St)\. /g,'$1 ')
.replace(/(\S+\.)[^\.]+\.?$/,'$1').replace(/\b(Mr|Dr|Mrs|St) +/g,'$1. ')
1 голос
/ 19 ноября 2009

Если в вашем тексте нет разрывов строк, «последняя строка» не существует. Он существует только тогда, когда он отображается в браузере, но не как часть текста. Хотя вы настаиваете на том, что «только используете регулярное выражение», регулярное выражение не может его найти.
Вы можете сойти с рук, если вы используете fixed width font, но это маловероятно. Вы также можете зацикливаться, пока не достигнете высоты цели, но это нежелательно.

Здесь лучше использовать CSS. Вот упрощенная версия, которая показывает первые две строки, а скрывает остальные:

p.TwoLines {
   overflow: hidden; /* no scroll bars */
   font-size: 10pt; /* here I have a fixed size, for example */
   line-height: 1.5;
   height: 30pt /* 1.5*2lines *10sizeofline */;

   width: 300px; /* not needed, just to see the effect */
}

Предварительный просмотр: http://jsbin.com/ufihe3

1 голос
/ 19 ноября 2009

Как это?

   "First Line\n.sth.&&.\nAnother\nLast Line&&Last Word".replace(/\n.*&&.*$/,'');

Результат

First Line
..sth.&&.
Another

Согласно вашему вопросу, В последней строке всегда есть "&&". , это не значит, что должно заканчиваться на &&, верно? и другие строки тоже могут иметь &&.

1 голос
/ 19 ноября 2009

если вам нужна новая строка имеет "компьютерная новая строка"

var str = "he ... and government networks&&";
str.replace(/\n[^\n]*&&$/,'');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...