2017-02-07 3 views
1

Мне нужна помощь с моим регулярным выражением. Я использую C#. Мне нужно регулярное выражение со всеми строками, содержащимися в кавычках, но мне нужно игнорировать экранированные кавычки в строке и строки, которые в комментарии похожи на это.Regex - Получить строки в комментариях игнорировать экранированные цитаты и комментарии

// "Hello Guys" -> Игнорировать

снабжать струной, тетивой и т.п.

SayHello ("Привет я \ "потребность \" наша помощь"); -> сопоставить целую строку.

Регулярное выражение я тока использовать это: Demo regex

+0

Я хотел бы сделать это в более шагах. Я думаю, что это может быть очень трудно сделать он использует одно только регулярное выражение – ExDev

+0

Я, вероятно, не обойдусь. Но я смущен этим регулярным выражением: //.* |/\\ * (?> [^ *] + | \\ * (?! /)) * \ \ */| (\ "(?: \\\" | [^ \ "]) * \") Это регулярное выражение отлично работает на debuggex.com, но когда я использую его в csharp, я получаю странные совпадения. – probird

+0

В вашем матче Например, когда вы говорите _ «сопоставить целую строку» _, вы имеете в виду функцию «SayHello» или просто «Hello i \» нужна «наша помощь»? – Niitaku

ответ

1

Мы можем использовать отрицательный, если вы 'назад знаете exacly длину символа перед комментарием с строкой. Потому что отрицательный lookbehind can not использует квантификатор. Что-то like this:

(?<!\/\/.)".*?[^\\]" 

Или сделайте это. Удалить все комментарии, которые используют // с этим регулярным выражением

\/\/.* 

затем использовать это, чтобы получить все строки

".*?[^\\]" 
+0

Спасибо t шляпы, что мне нужно :) Большое спасибо. – probird

1

Ecluding материал (работа с дополнениями) не то, что регулярные выражения хорошо (не считая некоторых more or less exotic extensions , а регулярные выражения в духе теории автоматов и формальных языков).

// комментарии должны быть отфильтрованы или заменены безвредным содержимым в своем собственном проходе.

Функция \»убегает бы нужен аналогичный режим.

Тогда вы могли бы соответствовать обезврежено содержанию с некоторым регулярным выражением.