我想写一个正则表达式,每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