Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
У меня есть вопрос, связанный с регулярными выражениями в ASP.NET. Дело в том, что у меня раньше форум одного из моих сайтов работал на собственном движке, PHP + MySQL. Но не так давно я решил перейти на ASP.NET. Должен отметить, очень нравится, всё намного более продуманнее, чем в PHP Дело в том, что у меня перестали разбираться RegExp-ы, работающие на старом форуме. У меня возникла проблема с 3-мя выражениями (остальные смогу решить сам, если разберусь с этими 3-мя): http://ссылка - заменяется на <a href="http://ссылка">http://ссылка</a> www.ссылка - заменяется на <a href="http://www.ссылка">www.ссылка</a> [quote="Имя"]какой-то текст - заменяется на <div class="quote"><b>Имя</b><br>какой-то текст</div> Надеюсь на помощь завсегдатаев форума ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 20:57 |
|
||
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
Честно сказать, лень писать за тебя... Покажи, что получилось, а я помогу подправить недочёты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 09:50 |
|
||
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
Разобрался сам, вот код (на VB.NET), может быть, кому-то пригодится: Stroka = Regex.Replace(Stroka, "(^|[\n ])((www|ftp)\.[^ \t\n\r<]*)", "$1<a href='$0'>$0</a>") Stroka = Regex.Replace(Stroka, "(^|[\n ])([\w]+?://[^ \n\r\t<]*)", "$1<a href='$0'>$0</a>") Stroka = Regex.Replace(Stroka, "\[quote=""(.*?)""\](.*?)\[/quote\]", "<div style='border: 1px solid #006699; background-color: whitesmoke; padding: 5px;'><b>$1</b> писал: <br /><br />$2</div></p>") Stroka = Regex.Replace(Stroka, "\([\w]+?://[^ \""\n\r\t<]*?)\](.*?)\[/url\]", "<a href='$1'>$2</a>") Stroka = Regex.Replace(Stroka, "\((www|ftp)\.[^ \""\n\r\t<]*?)\](.*?)\[/url\]", "<a href='http://$1'>$2</a>") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 13:25 |
|
||
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
жаль что у ползователей форума небудет возможности делать вложенные квотки, например вот такие: тестOops... авторOops...Oops... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 18:05 |
|
||
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
жаль что у ползователей форума небудет возможности делать вложенные квотки, например вот такие: тестOops... авторOops...Oops... Думаете? А если поменять (.*?) на (.*) - тогда простые квотинги будут слетать. Как же быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 20:48 |
|
||
|
Работа с регулярными выражениями для форума
|
|||
|---|---|---|---|
|
#18+
авторДумаете? не думаю, а знаю ;) сам с этим парился - фишка в том, что простой заменой тут не обойтись - нужно проходить в цикле до тех пор пока не будут заменены все возможные варианты... примерно вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 23:23 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1389760]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 332ms |

| 0 / 0 |
