使用string.gmatch()按\ n或\ r \ n分割字符串

时间:2015-09-29 14:48:21

标签: string lua lua-patterns

一个简单的模式应该可以胜任,但我无法找到/找到有用的东西。 我希望有这样的事情:

lines = string.gmatch(string, "^\r\n") 

3 个答案:

答案 0 :(得分:5)

要将字符串拆分为表(数组),您可以使用以下内容:

str = "qwe\nasd\rzxc"
lines = {}
for s in str:gmatch("[^\r\n]+") do
    table.insert(lines, s)
end

答案 1 :(得分:2)

我找到了答案:使用“[^ \ r \ n] +”('+'用于跳过空行。)

之前,我故意避免使用刹车,因为我认为它表示一个不支持转义的特殊字符串文字。嗯,这是不正确的。这样做是双刹车。
Lua string.gsub() by '%s' or '\n' pattern

答案 2 :(得分:2)

重要的一点-使用package com.example.corie.quicklinks.mainpages import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.support.asynclayoutinflater.R.id.text import android.webkit.WebChromeClient import android.webkit.WebViewClient import com.example.corie.quicklinks.R import com.example.corie.quicklinks.R.string.start_url import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //------------------WEBVIEW-----------------// webViewOne.webChromeClient = WebChromeClient() webViewOne.isVerticalScrollBarEnabled = false webViewOne.run{ webViewOne.loadUrl("https://" + getString(start_url)) } goBtn.setOnClickListener{ webViewOne.loadUrl("https://www.google.com/search?q=" + editText.text.toString()) } backBtn.setOnClickListener { if (webViewOne.canGoBack()) webViewOne.goBack() } nextBtn.setOnClickListener { if (webViewOne.canGoForward()) webViewOne.goForward() } //------------------WEBVIEW-----------------// } } 来删除定界符的解决方案不匹配两个换行符之间的空字符串,因此,如果要像正常的拆分实现一样保留它们(例如,比较两个文档中的行) ),最好将匹配定界符(例如本例):

gmatch

贷记到https://gist.github.com/jaredallard/ddb152179831dd23b230