Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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 - Fatal编程技术网

Ruby 如何在正则表达式扫描中转义换行符

Ruby 如何在正则表达式扫描中转义换行符,ruby,regex,Ruby,Regex,这里,当换行符(\n)出现时,它将被拆分。我实际上希望输出为 str = "This\n is a sample text for test" str.scan(/\S.{0,15}\S(?=\s|$)|\S+/) # => ["This", "is a sample text", "for test"] 如何实现这一点?使用允许点匹配换行符的/m修饰符: ["This\n is a", "sample text for", "test"] 另外,我建议您使用\z而不是$,因为$匹配

这里,当换行符(
\n
)出现时,它将被拆分。我实际上希望输出为

str = "This\n is a sample text for test"
str.scan(/\S.{0,15}\S(?=\s|$)|\S+/)
# => ["This", "is a sample text", "for test"]

如何实现这一点?

使用允许点匹配换行符的
/m
修饰符:

 ["This\n is a", "sample text for", "test"]

另外,我建议您使用
\z
而不是
$
,因为
$
匹配一行的结尾
\z
是强制Ruby匹配字符串结尾的唯一方法。在这个例子中,这并不重要,但这是一个好习惯。Ruby在这两点上与所有其他正则表达式不同。

谢谢@Tim!这正是我要找的。
str.scan(/\S.{0,15}\S(?=\s|\z)|\S+/m)