2016-04-12 8 views
2

を持つ文字列。区切り文字は-になります。 これは私が実際に試したものです:分割私は単に名前「ジェフ」を取得したい私は</p> <pre><code>hello - mynameis - jeff </code></pre> <p>この形式でのLUAで文字列を分割する方法を理解しようとしている二重の区切り文字

動作しません
local result = string.gmatch(line, "[-\s]+") 

。どうすればいい?

+0

"区切り記号は' -'と。* "区切り記号は" - "ではないでしょうか?つまり、スペースで囲まれたダッシュ? –

+0

https://github.com/moteus/lua-splitライブラリをチェックアウトしてください。 'result = split(line、 ' - '、true)'または 'result = split(行、 '%s *% - %s *')'となります。 – moteus

答えて

0

解決方法の1つは、あなたが持っているコンテンツで使われていない文字ですべての " - "を置き換えて、$文字列のアンカーを持つ単純な否定文字クラスで最後の部分を得ることです:

local example = "hello - mynameis - jeff" 
example = string.gsub(example, " %- ", "\x02") 
local result = string.match(example, "[^\x02]+$") 
print(result) 

" %- "Lua IDEONE demo

を参照してください、すべてのspace + - + space部分文字列は、一時的な文字に置き換え、その後、唯一のサブされています最後の一時的な文字の後に[^\x02]+$パターンと一致します。

私はSTX制御文字(\x02)を使用しましたが、解析する内容に欠落している可能性のあるものを選択することがあります。

関連する問題

 関連する問題