Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式进行ruby拆分——但在结果中保留匹配的文本_Ruby_Regex_Parsing - Fatal编程技术网

使用正则表达式进行ruby拆分——但在结果中保留匹配的文本

使用正则表达式进行ruby拆分——但在结果中保留匹配的文本,ruby,regex,parsing,Ruby,Regex,Parsing,我有以下字符串: 705 veliký big, great, large 707 čistý clear, clean 710 vnitřní inner, internal 我想在每个数字前插入换行符,但仍然保留数字。像这样: 705 veliký big, great, large 707 čistý clear, clean 710 vnitřní inner, internal 我在String.split(/regex/)上找到的所有内容都会丢弃匹配的模式。但在这种情况下,

我有以下字符串:

705 veliký big, great, large 707 čistý clear, clean 710 vnitřní inner, internal 
我想在每个数字前插入换行符,但仍然保留数字。像这样:

705 veliký big, great, large
707 čistý clear, clean 
710 vnitřní inner, internal 
我在
String.split(/regex/)
上找到的所有内容都会丢弃匹配的模式。但在这种情况下,我想保留它


我很乐意在Ruby或Textmate中这样做,但我在每个方面都有相同的问题。匹配的图案将替换为回车符

您在这里寻找的是:


要获取带回车符的字符串,只需将上面的结果加入(“\n”)。

您在这里要查找的是:


要获取带回车符的字符串,只需将上面的结果加入(“\n”)。

您可以使用大括号保留拆分正则表达式的内容,如下所示:

s = '705 veliký big, great, large 707 čistý clear, clean 710 vnitřní inner, internal'
puts s.split(/(\d+)/)
(错误的)结果将是:

705
 veliký big, great, large 
707
 cistý clear, clean 
710
 vnitrní inner, internal
拆分在每个数字之前和之后进行

因此,我建议先做一个
gsub

puts s.gsub(/(\d+)/, "\n\\1")
注意
gsub
的结果也是一个字符串(带换行符),
split
返回一个数组(不带换行符)!我的结果代码中的换行是由
put
命令生成的。

您可以使用大括号保留拆分正则表达式的内容,如下所示:

s = '705 veliký big, great, large 707 čistý clear, clean 710 vnitřní inner, internal'
puts s.split(/(\d+)/)
(错误的)结果将是:

705
 veliký big, great, large 
707
 cistý clear, clean 
710
 vnitrní inner, internal
拆分在每个数字之前和之后进行

因此,我建议先做一个
gsub

puts s.gsub(/(\d+)/, "\n\\1")
注意
gsub
的结果也是一个字符串(带换行符),
split
返回一个数组(不带换行符)!我的结果代码中的换行是由
puts
命令生成的。

您刚才在找吗?我不明白你为什么说拆分,而你说我想在每个数字前插入换行符,但仍然保留数字。最终输出应该是什么?什么是保持模式匹配?像
s.gsub(/(?=\d)/,“\n”)
之类的东西有什么问题?欢迎使用堆栈溢出。当问问题时,请花时间格式化你的问题,使其可读,并遵循正常的so外观。你在问题上付出的努力是有回报的。请读一读,你是来找我的吗?我不明白你为什么说拆分,而你说我想在每个数字前插入换行符,但仍然保留数字。最终输出应该是什么?什么是保持模式匹配?像
s.gsub(/(?=\d)/,“\n”)
之类的东西有什么问题?欢迎使用堆栈溢出。当问问题时,请花时间格式化你的问题,使其可读,并遵循正常的so外观。你在问题上付出的努力是有回报的。请阅读并正确查找,但我不确定
+
是什么for@pguardiario事实上,这在这里毫无意义。Thx,updated.mudasobwa--你说得对。积极的前瞻性正是我所需要的。thx.看起来不错,但我不确定
+
是什么for@pguardiario事实上,这在这里毫无意义。Thx,updated.mudasobwa--你说得对。积极的前瞻性正是我所需要的。这就是我需要的。你说得对,gsub是一个更好的工作工具。这正是我需要的。你是对的,gsub是一个更好的工具。