2016-12-14 15 views
3

Я имею дело с очисткой семантических .n3 и rdf файлов вручную от комментариев и уплотнения и довольно печатать те с Regex в 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

Спасибо, что сработало отлично! –

 Смежные вопросы

  • Нет связанных вопросов^_^