我想寫一個正則表達式,每160個字符後插入一個換行符,但如果第160個字符它在中間一個字的結尾,然後切斷。紅寶石 - 分割字符串後n個字符,但不要拆分,如果在中間的一個字
任何想法?
我已經嘗試過這種方式,但它還沒有工作。仍在嘗試。
string.gsub(/(.{160})(?=.)/, '\n')
這工作在Javascript中,只是不太知道如何得到它的回報率
工作string.replace(/(.{1,160})(?:\n|$|)/g, "$1 \n")
我想寫一個正則表達式,每160個字符後插入一個換行符,但如果第160個字符它在中間一個字的結尾,然後切斷。紅寶石 - 分割字符串後n個字符,但不要拆分,如果在中間的一個字
任何想法?
我已經嘗試過這種方式,但它還沒有工作。仍在嘗試。
string.gsub(/(.{160})(?=.)/, '\n')
這工作在Javascript中,只是不太知道如何得到它的回報率
工作string.replace(/(.{1,160})(?:\n|$|)/g, "$1 \n")
你可以試試這個:
regexp = /(\b.{1,160}[\S]*)\s/
res = text.scan(regexp).flatten.join("\n")
空間有一個小問題。爲了方便起見,假定行長度是8而不是160,而'text =「aaa aaa aaa」'。第八個字符,第二個空格不在字的中間,所以字符串應該在第8個空格之後被打破,但是你的代碼返回'「aaa aaa」'。順便提一句,請注意''\ S *'與'\ S *'相同。 –
你可以試試這個
string.gsub(/(.{160}\S*)\s*/, "\\1\n")
分享您的嘗試? – RSB
正則表達式不能插入換行符。 – mudasobwa
也許不是一個正則表達式,一個字符串運算符可能是什麼?我是RoR的新手,來自PHP背景。 – user3882741