Что нового

Как вычесть один символьный класс из другого ?

VladUs

Скриптер
Сообщения
621
Репутация
181
В книге Дж. Фридла описывается возможность вычитания одного символьного класса из другого.
Конструкция премерно такая [[а-я]-[в]]. Но данный вариант работает на .NET
А как же мне вычесть один символьный класс из другого в Autoit ?
Допустим имеется следующий код:

Код:
$test = "текст"
$pattern = "[[а-я]-[в]]" ; не рабочий шаблон

$aRet = StringRegExp ( $test, $pattern ,1 )

For $i = 0 To UBound($aRet) - 1
    ConsoleWrite($aRet[$i] & @CRLF)
Next


Буквально, шаблон должен звучать так: вычти мне из первого символьного класса второй символьный класс и сделай проверку на оставшиеся символы.
Надеюсь объяснил доходчиво
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
VladUs
Не проще так поступить
Код:
#include<Array.au3>
$test = "трамвай"
$pattern = "[^вм]"
$aRet = StringRegExp( $test, $pattern , 3 )
_ArrayDisplay($aRet)
 
Автор
V

VladUs

Скриптер
Сообщения
621
Репутация
181
Garrett
Так естественно проще. Но суть вопроса все-таки немного другая. Я хочу научится вычитать классы
 
Автор
V

VladUs

Скриптер
Сообщения
621
Репутация
181
Странно конечно. Я этот вопрос задал на одном из php-форумов. Там тоже молчание. :(
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
VladUs
Насколько принципиально важно именно таккая запись? Проблему можно легко обойти. Можно записать [абг-я]. Если вычитаемые символы меняются в цикле, то можно удалять их используя StringReplace.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Вычитание символьных классов... Лучше бы придумали, как в регулярных выражениях отлавливать число, которое больше/меньше определенного числа :smile:
 
Верх