2014-12-10 3 views
2

У меня есть html и есть несколько индексов. Пример нижеИзменение существующего регулярного выражения для извлечения индекса

this is first sample index <!-- @@struct1_s§var1-->19.5.1<!--Index--> and this is required 

this is second sample index <!-- @@struct2_s§var2-->19.5.2<!--Index--> - this is extension to the sample index <!-- @@struct3_s§var3-->19.5.3<!--Index--> and this is required. 

Я использую регулярное выражение

"<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->[\d]+\.[\d]+\.[\d]+<!--Index-->" 

так, если вообще я разобрать вышеупомянутую часть HTML я буду получать матчи в

<!-- @@struct1_s§var1-->19.5.1<!--Index--> 
<!-- @@struct2_s§var2-->19.5.2<!--Index--> 
<!-- @@struct3_s§var3-->19.5.3<!--Index--> 

теперь я хочу измените мое регулярное выражение таким образом, что если вообще - существует, я хочу получить весь индекс

Так что если на Л.Л. я разобрать вышеупомянутую часть HTML я должен получить совпавшие, как

<!-- @@struct1_s§var1-->19.5.1<!--Index--> 
<!-- @@struct2_s§var2-->19.5.2<!--Index--> - <!-- @@struct3_s§var3-->19.5.3<!--Index--> 

Я пытаюсь использовать это выражение, но он будет также получить другие символы присутствуют в одной и той же линии

regEx.Pattern = "<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->[\d]+\.[\d]+\.[\d]+<!--Index-->[-\s?]?[<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->[\d]+\.[\d]+\.[\d]+<!--Index-->]?" 

Если кто-то может помогите мне с этим, пожалуйста.

+0

' vks

+1

vks вы можете дать мне все выражение пожалуйста –

+0

Вы можете попробовать – vks

ответ

0

Простая версия может быть выполнена в трех матчах; он делает то, что вы хотите для приведенного выше теста:

<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->\d+\.\d+\.\d+<!--Index-->(-)? 

Вы можете делать то, что вы хотите в двух матчах, но вы должны будете соответствовать более чем то, что вы хотите, и затем использовать первый и второй захватив группы, чтобы получить соответствующие части, которые вы хотите (обычно 1 доллар США и 2 доллара США).

(<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->\d+\.\d+\.\d+<!--Index-->(?: -)?)(?:.*(<!--\[email protected]{2}[\.\w]*§[\.\w\[.\]]+-->\d+\.\d+\.\d+<!--Index-->))? 

Первый предпочтительный, если вы можете заставить его работать.

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