The*_*end 6 ruby regex newline gsub
我有一个带有换行符的字符串,我想要用于空格.
"hello I\r\nam a test\r\n\r\nstring".gsub(/[\\r\\n]/, ' ')
Run Code Online (Sandbox Code Playgroud)
像这样的东西^只有我的正则表达式似乎也在替换'r'和'n'字母.另一个约束是有时模式重复两次本身,因此就会与在连续两个空格来代替,虽然这不是优选的,最好不是被切断的所有文本分开.
如果有办法只选择新行字符.或者甚至更好,如果有更多的方法来接近这个去正则表达式?
如果您要将单个空格替换为混合的连续换行符,则可以使用以下正则表达式解决方案:
s.gsub(/\R+/, ' ')
Run Code Online (Sandbox Code Playgroud)
请参阅Ruby演示.
所述\R匹配的任何类型的换行的和+匹配的量化的子模式的一次或多次出现.
请注意,如果您必须处理旧版本的Ruby,则需要使用与之匹配的否定字符类 或:[\r\n]\r\n
.gsub(/[\r\n]+/, ' ')
Run Code Online (Sandbox Code Playgroud)
或 - 添加所有可能的换行符:
/gsub(/(?:\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029])+/, ' ')
Run Code Online (Sandbox Code Playgroud)