簡體   English   中英

正則表達式匹配一條線的2個不同部分

[英]Regex to match 2 different parts of a line

我正在lua工作,我需要匹配通過文件IO接收的一行的2部分。 我對正則表達式沒有經驗,我被告知lua並未內置完整的正則表達式支持(但是我有一個庫,如果需要的話可以提供)。 有人可以幫助我構建正則表達式以匹配必要的部分嗎?

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

我舉了一個例子:

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+(\d[\d.]*)$

說明:

  • ^ =行首
  • “(。*?)” =將“和”之間的所有內容保存到捕獲組
  • \\ s + =任何大於等於1的空白字符
  • (\\ d [\\ d。] *)=一個數字,后接更多數字或點
  • $ =行尾

不知道如何在lua中使用它,但是應該可以幫助您入門。

另一方面,這是一個非常簡單的字符串,因此在不使用正則表達式的情況下進行解析可能是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM