如何在Regex中只保留具有特定文本的单词?

时间:2016-01-01 10:31:09

标签: html regex parsing text

我想在文档中只保留包含特定文本的单词,并为每个单词指定分隔符。例如:

在:

4Sampledocument test suct.doc hxtp://domain.com/AB/sample.doc ON tuesday 2 A.M
2Sampledocus test sub.doc hxtp://domain.com/EA/samples.doc ON monday 1 A.M
4Sampledocssss test suect.doc hxtp://domain.com/LW/simple.doc ON wednesday 5 P.M
2Ssjxiw92 test ssct.doc hxtp://domain.com/LC/bro.doc ON friday 8 A.M

后:

hxtp://domain.com/AB/sample.doc|hxtp://domain.com/EA/samples.doc|hxtp://domain.com/LW/simple.doc|hxtp://domain.com/LC/bro.doc

| =分隔符

由于

2 个答案:

答案 0 :(得分:0)

考虑到你在最后一行有换行符,使用正则表达式替换的最佳选择如下。但是你需要删除尾随管道符号。

假设您使用的是PHP

preg_replace('/.*?(hxtp:.+?)\s+.*\s+/im', '$1|', $full_string);

OR

您可以遍历每一行并仅解析hxtp网址,然后使用|

进行内爆
preg_match('/.*?(hxtp:.+?)\s+.*/', $line_string, $matches);
var_dump($matches);

答案 1 :(得分:0)

我认为实现结果的最简单方法是查找所有网址并将其内嵌到一个字符串中,尽管它需要一些额外的PHP代码

还假设您使用的是PHP:

@import url('//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css');
.panel-default > .panel-heading {
  background: #000;
  color: #fff;
}