淘汰无效的URI

时间:2011-03-03 19:35:32

标签: regex grep uri

我有dbpedia的NTriple文件。其中一些包含非绝对URI,URI不以http://开头。这导致解析问题。

即。我有一些三元组,其URI类似于< www.example.com>而不是< http://www.example.com>

我想通过否定它们来惹它们。

我试过,失败了,用grep -v“^(< http)”。

有什么建议吗?

修改

我可能错误地指出了我的观点。这些URI不一定在行的开头。这是我使用'^'运算符作为NOT的错误。 另外,我想用grep -v。

来解决它们

以下是一些示例行:

< HTTP://dbpedia.org/resource/Petrodvorets_Watch_Factory> < HTTP://xmlns.com/foaf/0.1/homepage> < www.raketa.su>

< HTTP://dbpedia.org/resource/ABS_network> < HTTP://xmlns.com/foaf/0.1/homepage> < www.absn.tv>

3 个答案:

答案 0 :(得分:2)

grep -P '^(?!<http).*'

(?!...)是一个负面的先行 我没有测试它,所以如果你不工作,搜索网页 '正则表达否定前瞻' 应该做的工作

答案 1 :(得分:1)

要处理每行多个URI,工作正则表达式是:

grep -P'&lt;(?! http(s)?:\ / \ /)。*&gt;',开头。

答案 2 :(得分:0)

“^(&lt; http)”仅在“&lt; http”位于该行的开头时匹配。在你的情况下这是真的吗?