Regex 正则表达式匹配一行的两个不同部分

Regex 正则表达式匹配一行的两个不同部分,regex,string,lua,Regex,String,Lua,我在lua工作,我需要匹配通过文件IO接收的行的两部分。我对正则表达式缺乏经验,有人告诉我lua没有内置完整的正则表达式支持(但我有一个库,可以在需要时提供)。有人能帮我构建正则表达式以匹配必要的部分吗 "bor_adaptor_00.odf" 3.778 ^^^^^^^^^^^^^^ ^^^^^ i need this in and this in a string a number 说明

我在lua工作,我需要匹配通过文件IO接收的行的两部分。我对正则表达式缺乏经验,有人告诉我lua没有内置完整的正则表达式支持(但我有一个库,可以在需要时提供)。有人能帮我构建正则表达式以匹配必要的部分吗

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

  • ^=线路起点
  • “(.*)”=将“到”之间的所有内容保存到捕获组
  • \s+=任意数>=1个空格字符
  • (\d[\d.]*)=一个数字后跟多个数字或点
  • $=行尾
不知道如何在lua中使用它,但应该可以帮助您开始

另一方面,这是一个非常简单的字符串,因此不使用正则表达式解析它可能是一个好主意

说明:

  • ^=线路起点
  • “(.*)”=将“到”之间的所有内容保存到捕获组
  • \s+=任意数>=1个空格字符
  • (\d[\d.]*)=一个数字后跟多个数字或点
  • $=行尾
不知道如何在lua中使用它,但应该可以帮助您开始

另一方面,这是一个非常简单的字符串,因此不使用正则表达式解析它可能是一个好主意。

我举了一个例子:

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
我举了一个例子:

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

看起来你是基于两个或更多的空白字符进行拆分的,对吗?我不想弄脏答案,因为我不熟悉Lua,但这似乎是您可以采取的方法。您可以在安装文件夹的Lua文档中查看字符串库,即file:///.../Lua/5.1/docs/luarefv51.html#The_string_libraryJust 看起来你是基于两个或更多的空白字符进行拆分的,对吗?我不想弄脏答案,因为我不熟悉Lua,但这似乎是您可以采取的方法。您可以在安装文件夹的Lua文档中查看字符串库,即file:///.../Lua/5.1/docs/luarefv51.html#The_string_libraryYou如果你是对的,我想我可以使用lua的工具简单地将其解析为一个数字和一个单词,从这里开始你是对的,我想我可以使用lua的工具简单地把它解析成一个数字和一个单词,然后从那里开始