Regexp (Lua): различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == '''regexp''' - поиск позиции подстроки в строке с помощью регулярного выражения. Т...»)
 
 
Строка 4: Строка 4:
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: Нет.
 
Привязка к окну: Нет.
<br>Работа со свернутым окном: Да.
+
<br>Работа со свернутым окном: Да.
  position, hitstring, errorcode = regexp (&lt;string>, &lt;regexp>)
+
  position, hitstring, errorcode = regexp (<string>, <regexp>)
 
Где:
 
Где:
&lt;br>'''position''' - номер позиции первого символа совпавшего выражения. Если не найдено, то -1.
+
<br>'''position''' - номер позиции первого символа совпавшего выражения. Если не найдено, то -1.
&lt;br>'''hitString''' - совпавшее выражение. Если не найдено, то -1
+
<br>'''hitString''' - совпавшее выражение. Если не найдено, то -1
&lt;br>'''string''' - строка в которой происходит поиск.
+
<br>'''string''' - строка в которой происходит поиск.
&lt;br>'''regexp''' - собственно сам регексп.  
+
<br>'''regexp''' - собственно сам регексп.  
&lt;br>'''errorcode''' - код ошибки.
+
<br>'''errorcode''' - код ошибки.
  
 
== Примеры ==
 
== Примеры ==
Строка 17: Строка 17:
 
  --lua
 
  --lua
 
  --Найти в строке целое число
 
  --Найти в строке целое число
  local r = &lt;nowiki>[[\d+]]&lt;/nowiki>
+
  local r = <nowiki>[[\d+]]</nowiki>
 
  local s = "Вася съел 3 яблока."
 
  local s = "Вася съел 3 яблока."
 
  position, hitstring = regexp (s,  r)
 
  position, hitstring = regexp (s,  r)
Строка 38: Строка 38:
  
 
[[String.match (Lua)]]
 
[[String.match (Lua)]]
&lt;br>[[String.find (Lua)]]
+
<br>[[String.find (Lua)]]
&lt;br>[[String.gsub (Lua)]]
+
<br>[[String.gsub (Lua)]]
&lt;br>[[String.gmatch (Lua)]]
+
<br>[[String.gmatch (Lua)]]

Текущая версия на 11:05, 28 августа 2019

Описание

regexp - поиск позиции подстроки в строке с помощью регулярного выражения. Также есть String.match (Lua).

Синтаксис

Привязка к окну: Нет.
Работа со свернутым окном: Да.

position, hitstring, errorcode = regexp (<string>, <regexp>)

Где:
position - номер позиции первого символа совпавшего выражения. Если не найдено, то -1.
hitString - совпавшее выражение. Если не найдено, то -1
string - строка в которой происходит поиск.
regexp - собственно сам регексп.
errorcode - код ошибки.

Примеры

--lua
--Найти в строке целое число
local r = [[\d+]]
local s = "Вася съел 3 яблока."
position, hitstring = regexp (s,  r)
if position ~= -1 then     -- если найдено
   log ("Позиция первого символа: " .. position)
   log ("Найденное число: " .. hitstring)
end
--lua
--Найти в строке целое или дробное число
local r = [[\d+[.,]*\d*]]
local s = "У Васи зарплата: 50.432 рубля."
position, hitstring = regexp (s,  r)
if position ~= -1 then     -- если найдено
    log ("Позиция первого символа: " .. position)
    log ("Найденное число: " .. hitstring)
end

Смотрите также

String.match (Lua)
String.find (Lua)
String.gsub (Lua)
String.gmatch (Lua)