Страница 1 из 1

Способ поиска спец символов в строке

СообщениеДобавлено: 23 июн 2012 11:51
0x53
Добрый день.

Столкнулся с непонятной ситуацией... Нужно проверять имеются ли в строке именно вот эти символы (без кавычек): "*@*".
Если использовать string match, то за звёздочки он принимает окружающий текст. Как можно сделать что бы он искал композицию из этих трёх символов внутри текста строки?

Тоесть если маска будет - *!~user@site.com , скрипт сообщит что в ней нет итих символов, а если маска - *!~123*@* , то соответственно сообщит о нахождении символов в маске.

Надеюсь, что объяснил правильно. Заранее спасибо.

Re: Способ поиска спец символов в строке

СообщениеДобавлено: 23 июн 2012 15:35
tvrsh
<tvrsh> $$ set a "abc*@*def"; if {[regexp -nocase -- {\*\@\*} $a]} {return OK}
<@bionic> Return: OK - 0.06 ms.
<tvrsh> $$ set a "abc@*def"; if {[regexp -nocase -- {\*\@\*} $a]} {return OK}
<@bionic> OK - 0.03 ms.
Вроде получилось.

Re: Способ поиска спец символов в строке

СообщениеДобавлено: 23 июн 2012 20:06
0x53
tvrsh писал(а):
<tvrsh> $$ set a "abc*@*def"; if {[regexp -nocase -- {\*\@\*} $a]} {return OK}
<@bionic> Return: OK - 0.06 ms.
<tvrsh> $$ set a "abc@*def"; if {[regexp -nocase -- {\*\@\*} $a]} {return OK}
<@bionic> OK - 0.03 ms.
Вроде получилось.


Невероятно, но факт - работает. Уже почти два года занимаюсь tcl, и имею всё те же проблемы что и в других языках программирования... - плохое понимание и редкое использование regexp.

Спасибо. ;)