Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Программирование на Lua _ Скрипт тестирования множеств в регулярных выражениях

Автор: alex82 2.5.2010, 9:30

Версия Lua: 5.1
Автор: alex82

Описание:
Данный скрипт наглядно демонстрирует, какие символы будут захвачены при использовании тех или иных множеств в регулярных выражениях Lua.

Пример
%a => A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
%c => \0 \1 \2 \3 \4 \5 \6 \a \b \t \n \v \f \r \14 \15 \16 \17 \18 \19 \20 \21 \22 \23 \24 \25 \26 \27 \28 \29 \30 \31 
%d => 0 1 2 3 4 5 6 7 8 9
%l => a b c d e f g h i j k l m n o p q r s t u v w x y z
%p => ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
%s => \t \n \v \f \r <space>
%u => A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
%w => 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
%x => 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
%z => \0

 capture_test.lua ( 758 байт ) : 58

Автор: Setuper 2.5.2010, 11:15

Стоит подчеркнуть, что результат зависит от установленной локали.

То есть, пишем в начале скрипта

Код
os.setlocale"Russian_Russia.1251"
и получаем другой результат big_smile.gif

Автор: Trans 3.5.2010, 0:47

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

Код
-- os.setlocale"Russian_Russia.1251"  -- (рус.локаль)
os.setlocale("C")  -- (возврат на станд.локаль)
иначе даже при удалении той строки и перезапуске скрипта, локаль останется измененная. По крайней мере, для данного скрипта.

Автор: Setuper 3.5.2010, 10:03

Именно так.
Так как локаль устанавливается программно big_smile.gif

Автор: alex82 3.5.2010, 15:55

Цитата(Trans @ 3.5.2010, 0:47) *
Чтоб вернуться на штатную локаль системы...

...не нужно заниматься извратом, запуская подобного рода скрипты под PtokaX.

Автор: Setuper 3.5.2010, 16:29

Где изврат то? Что имеется ввиду под извратом?

Автор: alex82 3.5.2010, 18:04

Цитата
Чтоб вернуться на штатную локаль системы, нужно задействовать эту строку вместо предыдущей

Наверняка, скрипт запускался под птокой - standalone Lua при перезапуске скрипта перезапускается полностью. При этом локаль, которая использовалась при предыдущем запуске, естественно, не сохраняется.

Использовать птоку для изучения Lua - чистой воды изврат.

Существует масса дистрибутивов Lua - LuaForWindows, LuaAIO, официальные бинарники Lua в конце концов. Ну так зачем заниматься извратом?

Автор: Ksan 3.5.2010, 21:03

Не майтесь дурью. При чем тут изврат? Я всего лишь взял проверил этот скриптик и получил давно желаемый список всех префиксов. Заодно узнал некоторые побочные нюансы. И всё. Где тут изврат? Изврат был бы, если бы ради всего этого поставил бы все эти твои

Цитата
Существует масса дистрибутивов Lua - LuaForWindows, LuaAIO, официальные бинарники Lua в конце концов.
Не делайте из мухи слона и не доказывайте лишний раз свою православность!