Регулярное выражение для соответствия 2 различным частям строки - PullRequest
0 голосов
/ 15 сентября 2009

Я работаю в Lua, и мне нужно сопоставить 2 части строки, которые принимаются через файл IO. Я неопытный с регулярными выражениями, и мне сказали, что у lua нет полной встроенной поддержки регулярных выражений (но у меня есть библиотека, которая обеспечивает это при необходимости) Может ли кто-нибудь помочь мне с построением регулярных выражений, чтобы они соответствовали необходимым частям?

    "bor_adaptor_00.odf" 3.778
         ^^^^^^^^^^^^^^      ^^^^^
         i need this in      and this in
         a string            a number

Ответы [ 2 ]

3 голосов
/ 15 сентября 2009

Я сделал пример:

s = '"bor_adaptor_00.odf" 3.778'
val1, val2 = string.match(s,'(%b"")%s*([.0-9]*)')
print(val1, val2)

выход:

"bor_adaptor_00.odf"    3.778
2 голосов
/ 15 сентября 2009
^"(.*?)"\s+(\d[\d.]*)$

Пояснение:

  • ^ = начало строки
  • "(. *?)" = Сохранить все между "и" в группу захвата
  • \ s + = любое число> = 1 пробельных символов
  • (\ d [\ d.] *) = Цифра, за которой следуют дополнительные цифры или точки
  • $ = конец строки

Не знаю, как использовать это в lua, но это поможет вам начать.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...