正则表达式来删除文本
我如何删除从文本中的Java脚本块中的最后一行,而不使用循环块的最后一行。(仅使用正则表达式) 例如,正则表达式来删除文本
“互联网是一个全球性的该系统使用标准互联网协议套件(TCP/IP)为全球数十亿用户提供服务,是一个由数百万私人和公共,学术,商业和政府网络组成的网络网络。
最后一行总是有“& &”。
var str = "The ... and government networks&&";
str.replace(/\.[^.]+&&$/,'.');
如果按最后一行您是指最后一句。最后一句不包含句点。
如果你需要新的生产线有“电脑新线”
var str = "he ... and government networks&&";
str.replace(/\n[^\n]*&&$/,'');
喜欢这个?
"First Line\n.sth.&&.\nAnother\nLast Line&&Last Word".replace(/\n.*&&.*$/,'');
结果
First Line
..sth.&&.
Another
根据您的问题,最后一行总是有 “& &”。,这并不意味着必须以& &结束,对不对?其他线路也可以有& &。
您的文字中有没有换行,所以我想你的意思是删除最后一个sentence-
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. ')
解析HTML是不受欢迎的常用表达。解析自然语言是不可能的。 – Kobi 2009-11-19 09:42:29
如果您的文本没有换行符,则“最后一行”不存在。它只在浏览器中显示时才存在,但不作为文本的一部分。虽然你坚持“只使用正则表达式”,但正则表达式找不到它。
如果您使用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 */
}
“最后一行”作为最后一句? – 2009-11-19 05:08:18
@Sidharth:你能告诉我们你期待的结果吗? – RageZ 2009-11-19 05:08:34
你问的是如何删除最后一句,或者只是“&&”或字面意思是最后一行(我认为这会是这样的“\ n。* && $”)? – zfedoran 2009-11-19 05:10:32