2016-12-14 46 views
3

我正在处理清理语义.n3和rdf文件的注释和压缩,并用C#中的正则表达式打印这些文件。如何正确删除语义.n3文件中的#条评论而不影响#s的其余部分?

但是#是用于描述资源的语义文件中非常常见的字符。

示例代码:

#Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp 
     # using base http://www.prodigi.eu/instances 

# Notation3 generation by 
#  notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp 

# Base was: http://www.prodigi.eu/instances 
    @prefix : </ac-schema#> . 
    @prefix ins: </instances#> . 
    @prefix olanet: <http://www.ibermaticaindustria.com/soluciones/planta-mes-olanet#> . 
    @prefix plm: <http://hms.ifw.uni-hannover.de/#> . 
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 

    ins:everyone  a <http://xmlns.com/foaf/0.1/Group>; 
     :canSee ins:public; 
     rdfs:member <http://127.0.0.1/OslcOlanetProvider/api/producer/01>, 

[...] 
+1

你是什么意思“而不会影响斜杠的其余部分”? –

+1

这是一个斜杠'/',你的意思是'#'散列吗? –

+1

是的,哈希#。在资源中,对于错误 –

回答

2

你可以试试这个:

^\s*#.*$ 

和空

替换假设,注释会以#开始,也可能仅是前面是 \ r或\ n或\ t或\ f \ v或空格

Explanation

将每个文件读取为字符串并调用以下方法并再次写入文件。

示例代码:

using System; 
using System.Text.RegularExpressions; 
.......... 
........... 
    public String removeHash(String input) 
    { 
     string pattern = @"^\s*#.*$"; 
     string substitution = @""; 

     RegexOptions options = RegexOptions.Multiline; 

     Regex regex = new Regex(pattern, options); 
     string result = regex.Replace(input, substitution); 
     return result; 
    } 
+0

感谢抱歉,那工作完美! –

相关问题