Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Честное слово, перерыл весь интернет... заморочил голову всему РусНету, Далнету, Улицам ВБ и вот пришел мучать вас :) Итак... ASP.NET (VB) Есть строка: Dim str As String = "TEXT <p> OTHER [text]1<br>2dsd 3<head>[:text] opyat <a re>" Мне нужно так применить регулярные выражения, чтобы получилась на выходе такая строка: TEXT <p> OTHER <ZAMENA>12dsd 3</ZAMENA> opyat <a re> Т.е., чтобы [text] и [:text] поменялись на <ZAMENA> и </ZAMENA>, соответственно. Но! Самое главное... чтобы внутри [text] и [:text] были убраны все теги. Значит, что я сделал... Str = System.Text.RegularExpressions.Regex.Replace(Str, "\[text\](.*)\[:text\]", "<ZAMENA>$1</ZAMENA>") Замена - заменяется... А вот как и что добавить в этот шаблон, чтобы убрать внутри теги... Уже думал рекурсию добавлять, циклы... ничего не получается. Уже голова не думает... Целый день убил на вот такую задачу... Теги, это <(.*?)>... и как это "всунуть" в PATTERN? Думаю алгоритм примерно такой: While regexp.IsMatch(Str) Str = regexp.Replace(...) End While Опять же.. тыкал тыкал... максимум что получал - убирался <BR>.. причем последний.. Умоляю, помогите... Только на вас надежда. Горю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:43 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
А выполнить несколько регулярных выражений?---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:46 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Это делается так Str = Regex.Replace(Str, "\[text\](.*)\[:text\]", new MatchEvaluator(RegexMatchEvaluator), RegexOptions.Singleline | RegexOptions.Compiled); public static string RegexMatchEvaluator(Match match) { return Regex.Replace(match.Groups[1].Value, "<[^>]+>", string.Empty); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:52 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Правильно, выполни несколько (: Сначала убери все тэги из строки, а потом замени что надо... PS: Кстати, а зачем тебе убирать все тэги?vo1d ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:55 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Да вот именно.. мне нужны не все теги убирать, а только те, которые внутри [text][:text] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:58 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Так.... теги оно убирает... но убирает вместе с [text][:text], т.е. была такая строка: TEXT <p> OTHER [text]1<br>2dsd 3<head>[:text] opyat <a re> Получилась такая: TEXT <p> OTHER 12dsd 3 opyat <a re> А мне нужна TEXT <p> OTHER <ZAMENA>12dsd 3</ZAMENA> opyat <a re> Плиз помогите.. мои условные рефлексы сейчас способны только на печать этого сообщения. Думать уже не получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 17:04 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Все работает! string Str = "TEXT <p> OTHER [text]1<br>2dsd 3<head>[:text] opyat <a re>"; Str = Regex.Replace(Str, @"\[text\](.*)\[:text\]", new MatchEvaluator(RegexMatchEvaluator), RegexOptions.Singleline | RegexOptions.Compiled); public static string RegexMatchEvaluator(Match match) { return "<ZAMENA>" + Regex.Replace(match.Groups[1].Value, "<[^>]+>", string.Empty) + "</ZAMENA>"; }---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 17:11 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Угу )) Всем спсб )) +1 каждому %) www.codeholes.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 17:17 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Это Nisus надо говорить спасибо! ---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2006, 08:26 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Опять трабла.. вроде уже думал разобрался с regex (года два летала вокруг меня мысль "а не разобраться ли мне с regex".. да руки только сейчас дошли и куча вопросов). За прошлые ответы - всем спсб, многое сделал :) Показал бы, но боюсь зОбанют за рекламу и т.д., поэтому воздержусь ;) ... но когда подошел к "смайликам" наткнулся на одну проблему... Как зареплейсить ВСЕ смайлики (не важно в принципе что..) везде КРОМЕ [code][:code]... т.е. есть строка: Str="text :) text :) text [code]text :) text :) text :)[:code] text :)" Нужно везде, кроме \[code\](.*?)\[:code\] поменять ":)" на "<img..>"... Т.е. должно на выходе получится: Str="text <img> text <img> text [code]text :) text :) text :)[:code] text <img> " Как "рассказать" regex'у об этом самом КРОМЕ не помог ни гугль, ни MSDN... кавырял, кавырял... даже RegexBuddy скачал (не плохоая программа, помогает при составлении паттернов...) но и она оказалась бессильна. Помогите опять ;) www.codeholes.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2006, 02:38 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
Форматирование "внутри форума", возможно слегка исказило мой вопрос, давайте чуть-чуть поменяем строки: Вот, что имеем: Str="text #SMILE# text #SMILE# text [code]text #SMILE# text #SMILE# text [:code] text #SMILE# text" ЧТо нужно получить: Str="text <ZAMENA> text <ZAMENA> text [code]text #SMILE# text #SMILE# text [:code] text <ZAMENA> text" Т.е. внутри [code] и [:code] текст "#SMILE#" не должен быть заменен ничем.. А все снаружи - Да. Надеюсь, теперь я более верно и правильно сформулировал вопрос. Пожалуйста, ответьте. www.codeholes.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2006, 17:02 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
авторТ.е. внутри Код: 1. 2. а после этого заменяешь свои символы смайлов на пути к картинкам по всему сообщению P.S. думаю идея понятна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2006, 13:51 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
>> Т.е. внутри [code] и [:code] текст "#SMILE#" не должен быть заменен ничем.. А все снаружи - Да. string res = Regex.Replace(str, @"#SMILE#|(\[code\].*?\[:code\])", new MatchEvaluator(foo)); static string foo(Match m) { return (m.Groups[1].Success ? m.Value : "<IMG>"); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2006, 19:17 |
|
||
|
Регулярные выражения. Я сломал мозг.
|
|||
|---|---|---|---|
|
#18+
string text = @"text #SMILE# text #SMILE# text [code]text #SMILE# text #SMILE# text [:code] text #SMILE# text"; string replaced = new Regex(@"(\#SMILE\#)|(?:\[code\][\s\S]+?\[:code\])", RegexOptions.IgnoreCase|RegexOptions.Compiled) .Replace(text, new MatchEvaluator(RegexMatchEvaluator)); public static string RegexMatchEvaluator(Match match) { return match.Groups[1].Value.Length > 0 ? ": - )" : match.Value; } примерно как-то так можно сделать, тут используется тот момент, что та часть, которую нужно проигнорировать выделена в non capture группу, то есть она выделается, но ее текст не будет доступен через группы, соответственно в первой группе для нее будет пустая строка, а нулевая группа всегда содержит полный текст найденного фрагмента, который мы и возвращаем (match.Value это синоним для match.Groups[0].Value). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33833508&tid=1391403]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
129ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 464ms |

| 0 / 0 |
