Mysql 替换ruby中数字后面的\n个数字

Mysql 替换ruby中数字后面的\n个数字,mysql,ruby-on-rails,ruby,regex,string,Mysql,Ruby On Rails,Ruby,Regex,String,请帮助我使用ruby中的正则表达式 我有一个像这样的文本 一,。你好,世界\n 2.\n 早上好\n 我希望是两个字符串,但在原始版本中,它有三个字符串,带有错误的“新行-\n”字符 询问如何在“2”之后和“早上好”之前替换“bad”\n 像这样成千上万的错误让我很苦恼 str.gsub(/(\d\.)\n/, '\1') 将紧跟在数字(\d)前面的所有换行符和点替换为该数字和点 str.gsub(/(?:\d\.)\n/,'') 将紧跟在数字(\d)前面的所有换行符和点替换为该数字和点 s

请帮助我使用ruby中的正则表达式

我有一个像这样的文本

一,。你好,世界\n 2.\n 早上好\n

我希望是两个字符串,但在原始版本中,它有三个字符串,带有错误的“新行-\n”字符

询问如何在“2”之后和“早上好”之前替换“bad”\n 像这样成千上万的错误让我很苦恼

str.gsub(/(\d\.)\n/, '\1')
将紧跟在数字(
\d
)前面的所有换行符和点替换为该数字和点

str.gsub(/(?:\d\.)\n/,'')
将紧跟在数字(
\d
)前面的所有换行符和点替换为该数字和点

str.gsub(/(?:\d\.)\n/,'')
regexp中括号中的内容(一个数字后跟一个点)匹配但未捕获,因为
?:


regexp中括号中的内容(一个数字后跟一个点)匹配但未捕获,因为
?:

您可以像这样删除“坏”换行符

string = "1. Hello, World\n 2.\n Good Morning\n"
new_string = string.gsub(/(\d+\.)\n/, '\1') #=> "1. Hello, World\n 2. Good Morning\n"

这将删除一个或多个数字后面跟一个点的换行符。

您可以像这样删除“坏”换行符

string = "1. Hello, World\n 2.\n Good Morning\n"
new_string = string.gsub(/(\d+\.)\n/, '\1') #=> "1. Hello, World\n 2. Good Morning\n"

这会删除一个或多个数字后的换行符,后面跟一个点。

undur_gongor的答案给出了您的要求,但我想知道这是否是您真正需要的

例如,如果一条线合法地以一个数字结尾,然后是一个点,如:

str = "1. Hello, World\n 2.\n Good Morning\n 3.Today is 29th January 2012.\n 4. This should be a new line.\n"
你最终会得到:

“1.你好,世界\n 2.早上好\n 3.今天是2012年1月29日。4.这应该是新的一行。\n”

因此,您最好使用:

str.gsub(/(^\d+\.|\n\s*\d+\.)\n/, '\1')
表达式的
^\d+\.
部分检测字符串中的第一个“行”。
\n\s*\d+\.
部分查找后续的“行”;它接受在任何多位数和点之前的无限空格字符

它可能并不完美,但涵盖了更多的场景。
你有没有更好的方法来检索数据?在最好的情况下,解析字符串以获取数据是一项艰巨的工作;当字符串格式不正确时,情况更是如此。

undur_gongor的回答给出了您的要求,但我想知道这是否是您真正需要的

例如,如果一条线合法地以一个数字结尾,然后是一个点,如:

str = "1. Hello, World\n 2.\n Good Morning\n 3.Today is 29th January 2012.\n 4. This should be a new line.\n"
你最终会得到:

“1.你好,世界\n 2.早上好\n 3.今天是2012年1月29日。4.这应该是新的一行。\n”

因此,您最好使用:

str.gsub(/(^\d+\.|\n\s*\d+\.)\n/, '\1')
表达式的
^\d+\.
部分检测字符串中的第一个“行”。
\n\s*\d+\.
部分查找后续的“行”;它接受在任何多位数和点之前的无限空格字符

它可能并不完美,但涵盖了更多的场景。
你有没有更好的方法来检索数据?在最好的情况下,解析字符串以获取数据是一项艰巨的工作;当字符串格式不正确时更是如此。

在ruby中使用
gsub
方法。请参阅ruby 1.9.3中关于ruby中使用
gsub
方法的文档。请参阅ruby 1.9.3文档,这似乎不起作用。虽然未捕获
(?:…)
部件,但正在替换它。这似乎不起作用。虽然未捕获
(?:…)
部件,但正在替换它。这似乎不起作用<代码>$1必须在调用
gsub
之前可用,但它不是。您可以改为执行
gsub(/(\d+\)\n/){$1}
。对不起。。在处理其他正则表达式时发生:)修复了答案。这似乎不起作用<代码>$1必须在调用
gsub
之前可用,但它不是。您可以改为执行
gsub(/(\d+\)\n/){$1}
。对不起。。与其他正则表达式混在一起时发生:)修复了答案。