簡體   English   中英

在Ruby中,如何分割兩個或多個空格或制表符?

[英]In Ruby, how do I split on two or more spaces or a tab?

使用Ruby,如何分割成兩個或更多的空格或制表符? 那是我有:

2.4.0 :005 >   str = "a\t\tb   c d"
 => "a\t\tb   c d"

並應用上述規則,我希望結果是:

["a", "", "b", "c d"]

因為連續的制表符捕獲一個空字符串。 但是當我嘗試以下內容時:

2.4.0 :007 > str.split(/(?:[[:space:]][[:space:]]+|\t)/)
 => ["a", "b", "c d"]

這些選項卡將合並為一個[[:space:]]

如何調整正則表達式以分成兩個或更多個空格或制表符?

您可以嘗試以下方法:

"a\t\tb   c d".split(/\t| {2,}/)
#=> ["a", "", "b", "c d"]

"ab \t\t\tf".split(/\t| {2,}/)
#=> ["ab ", "", "", "f"]

其中\\t表示制表符{2,}表示兩個或多個空格 請注意, {2,}之前有一個空格

要包含不間斷空格 ,可以在表達式中添加 ,如下所示:

str.split(/\t|[ |\u00A0]{2,}/)

例子:

str = "a\t\tb \u00A0 c d"         #=> "a\t\tb   c d"
str.split(/\t|[ |\u00A0]{2,}/)    #=> ["a", "", "b", "c d"]

str = "ab \t\t\tf"                #=> "ab \t\t\tf"
str.split(/\t|[ |\u00A0]{2,}/)    #=> ["ab ", "", "", "f"]

其中[ |\ ]{2,}將檢查是否有兩次或多次出現空格不間斷空格

暫無
暫無

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

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