Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 50

Значение символы из таблиц вроде %q+

09.10.2018, 20:10. Показов 3627. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Только начал изучать lua по книге Роберто Иерусалимского и у него сразу пошло, без обьяснения, использование неких последовательностей символов в таблицах вроде "%q+" или "%w+" или "%a+" или все тоже самое но без плюса, растолкуйте мне пожалуйста что они значат, имеет ли значение буква после % или нет и что дает добавление знака плюс?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2018, 20:10
Ответы с готовыми решениями:

Найти значение выражения. Вроде бы легко, но не выходит
Всем привет! В общем, задача такая: дано действительное число х и целое число N (> 0). Найти значение выражения 1-x^3/(3!)+X^5...

Пропадает интернет - вроде он есть, а вроде его нет
Приветствую друзья. Собственно вчера все началось. Сижу в ФФ 28.0. Через какое-то время пропадает интернет. Сижу через вайфай роутер,...

Непонятки с видеокартой-вроде и пашет, а вроде и нет
В общем такая штука-была у меня раньше старая карточка matrox millenium g550.и рещшил я ее обновить.Купил значится Saphire radeon 3450...

7
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
10.10.2018, 12:54
Лучший ответ Сообщение было отмечено Anatoliy99 как решение

Решение

https://www.lua.org/pil/20.2.html
1
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 50
14.10.2018, 17:13  [ТС]
Может еще кто нибудь будет так добр что подскажет дальше, вообщем читаю про паттерны, многое стало ясно но опять наткнулся на место где без обьяснения что это применяется некоторая вещь, а именно, в https://www.lua.org/pil/20.3.html

We can also use captures in the pattern itself. In a pattern, an item like '%d', where d is a single digit, matches only a copy of the d-th capture. As a typical use, suppose you want to find, inside a string, a substring enclosed between single or double quotes. You could try a pattern such as '["'].-["']', that is, a quote followed by anything followed by another quote; but you would have problems with strings like "it's all right". To solve that problem, you can capture the first quote and use it to specify the second one:

s = [[then he said: "it's all right"!]]
a, b, c, quotedPart = string.find(s, "(["'])(.-)%1")
print(quotedPart) --> it's all right
print(c) --> "
Тут в паттерне "(["'])(.-)%1" используется такой шаблон как %1 который в данном случае означает первую захваченную кавычку, но в https://www.lua.org/pil/20.2.html нигде небыло сказано о паттернах вида %цифра, и еще я не совсем понял что там означает прямой слэш в ["'], т.к. в паттернах применяются везде только обратные слэши - /, надо понимать что он ничего не значит а в квадратных скобках просто указываются все символы один из которых должен быть в строке к которой применяется шаблон, то есть либо \ либо " либо ', ну а как же тогда истолковывается %1? и дальше там идут такие же примеры:
print(string.gsub("hello Lua!", "(%a)", "%1-%1"))
--> h-he-el-ll-lo-o L-Lu-ua-a!

В книге же у него этот пример приводится с %0:
print((string.gsub("hello Lua!", "%a", "%0-%0")))
--> h-he-el-ll-lo-o L-Lu-ua-a!

обе программы, и с %0 и с %1 работают одинаково

print(string.gsub("hello Lua", "(.)(.)", "%2%1"))
--> ehll ouLa

что тут означают %2 и %1?
Что значат все эти %0, %1, %2, %3 и т.д.?
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
15.10.2018, 18:15
Лучший ответ Сообщение было отмечено Anatoliy99 как решение

Решение

Возможно вот эта статья внесет ясность?

http://bot4sale.ru/blog-menu/q... terns.html
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
15.10.2018, 18:43
vantfiles,
Forbidden

You don't have permission to access /blog-menu/qlua/spisok-statej/265-lua-patterns.html on this server.
0
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 50
15.10.2018, 21:21  [ТС]
Цитата Сообщение от vantfiles Посмотреть сообщение
Возможно вот эта статья внесет ясность?
http://bot4sale.ru/blog-menu/q... terns.html
Спасибо внесла, но не до конца, читаю у Иерусалимчего о паттернах дальше, на https://www.lua.org/pil/20.3.html, там такой пример:
As a more useful example, let us write a primitive format converter, which gets a string with commands written in a LaTeX style, such as
\command{some text}
and changes them to a format in XML style,
<command>some text</command>
For this specification, the following line does the job:
s = string.gsub(s, "\\(%a+){(.-)}", "<%1>%2</%1>")
For instance, if s is the string
the \quote{task} is to \em{change} that.
that gsub call will change it to
the <quote>task</quote> is to <em>change</em> that.

Что значат эти два прямых слэша в s = string.gsub(s, "\\(%a+){(.-)}", "<%1>%2</%1>") - "\\(%a+){(.-)}"?
На этот раз они не в квадратных скобках, теперь у них уже другой смысл
Поэкспериментировал,
С двумя и более слэшами вывод print(s) выдает:
the <quote>task</quote> is to <em>change</em> that.

А с одним и без вывод print(s) выдает:
the \<quote>task</quote> is to \<em>change</em> that.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
17.10.2018, 12:00
Лучший ответ Сообщение было отмечено Anatoliy99 как решение

Решение

Если я правильно понял, у вас возникла сложность с так называемым символом экранирования,
которым и является символ \

Как было написано тут: https://www.lua.org/pil/20.2.html

Some characters, called magic characters, have special meanings when used in a pattern. The magic characters are

( ) . % + - * ? [ ^ $

Так вот, для того чтобы их использовать в их обычном понимании и используется обратный слэш.

Соответственно \\ - это просто слэш, но мы вынужденны писать его дважды, поскольку он является экранирующим символом.

Впрочем и тут есть нюанс - почитайте в чем разница между следующими строками:

s1 = "У лукоморья дуб зеленый"
s2 = 'Златая цепь на дубе том'
s3 = [[И днем и ночью]]

ps: надеюсь, что помог
pps: Black Fregat, прокляните своего провайдера
1
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 50
17.10.2018, 18:34  [ТС]
Цитата Сообщение от vantfiles Посмотреть сообщение
Так вот, для того чтобы их использовать в их обычном понимании и используется обратный слэш.
Соответственно \\ - это просто слэш, но мы вынужденны писать его дважды, поскольку он является экранирующим символом.
Впрочем и тут есть нюанс - почитайте в чем разница между следующими строками:
s1 = "У лукоморья дуб зеленый"
s2 = 'Златая цепь на дубе том'
s3 = [[И днем и ночью]]
ps: надеюсь, что помог
Спасибо большое за желание помочь, только чтото не встретил в книге где там говорится о том что прямой слэш является экранирующим символом, подумав и поэкспериментировав в интерпретаторе мне все стало ясно - \\(%a+) - это просто шаблон такой в котором два слэша не означают ничего кроме двух слэшей, то есть если интерпретатор встретит в строке последовательность вида \\любое количество букв то эта последовательность и будет соответствовать этому шаблону, так же как и {(.-)} - которая означает лишь {любые символы или ничего}, мдаа, замысловато однако все у Роберто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2018, 18:34
Помогаю со студенческими работами здесь

HTML-форма, вроде просто, а вроде и нет
Уважаемые форумчане, помогите пожалуйста! Есть HTML-таблица с формой: |______|_A______|_B______| |_Вася_|_input_A_|_input_B_| ...

Вроде база есть, а вроде её нет
Здравствуйте, загрузил сайт, загрузил базу. Картина получается вот такая - realt-plus.ru В скрипте подключения базы прописал нового...

Вывести список таблиц (начинающихся на определенные символы)
Здравствуйте! В базе данных есть таблицы допустим: a_1_2222 a_1_23323 a_1_334 a_2_2323 a_2_2323 b_1_2323 b_1_323 Мне...

Вывести на экран символы таблиц кода ASCII
Вывести на экран символы таблиц кода ASCII

Вроде переполнение, а вроде бы и нет
День добрый! Интересует, почему си не дает мне сделать следующую штуку. int a = 4999998848; cout &lt;&lt; a*2 &lt;&lt; endl; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru