используя RegEx для замены строки - PullRequest
0 голосов
/ 21 июля 2010

У меня есть этот шаблон, который я использую для замены строки:

var html = "some test string";
var regex = new Regex(@"<(.|\n)+?>", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline);
var result = regex.Replace(html, ?);

этот шаблон соответствует всем тегам html <anything here> и заменяется на ?. на самом деле ? равно " " или "" в соответствии с типом совпадения. например, если я использую HTML-разметку ниже:

<a href="www.google.com">Google</a><a href="www.yahoo.com">Yahoo!</a>

результат выглядит примерно так:

Google?Yahoo! (here ? should be " ")

и если я использую HTML-разметку ниже:

Buy it now for <b>$279</b><b>.99</b>!

результат выглядит примерно так:

Buy it now for ?$279??.99?! (and here ? should be "")

Кто-нибудь может помочь улучшить этот шаблон для правильной работы? заранее спасибо

UPDATE

Хорошо, на самом деле я не нашел подход, чтобы сделать то, что мне нужно, поэтому я использую MatchEvaluator, чтобы определить, где? должно быть "" и где ""! большое спасибо;)

Ответы [ 2 ]

3 голосов
/ 21 июля 2010

Попробуйте это для своего регулярного выражения:

Regex r = new Regex(@"<(.|\n)*?>", RegexOptions.IgnoreCase | RegexOptions.Singleline);

И проверьте ваши варианты, нет необходимости объединять SingleLine и MultiLine.

1 голос
/ 21 июля 2010

Вы можете использовать RegEx Coach (http://www.weitz.de/regex-coach/) или http://gskinner.com/RegExr/ (онлайн-инструмент), чтобы проверить свои регулярные выражения и почувствовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...