可以重新修剪修剪删除空白行而不删除CRLF?

时间:2017-09-17 22:44:56

标签: rebol

我想使用trim删除空行:

line 1

line 2

获取

line1
line2

但使用

trim/lines

也会删除CRLF。那么还有另一种方法可以将trim用于此目的吗?

3 个答案:

答案 0 :(得分:4)

您可以使用PARSE

parse string-with-newlines [
    any [
          crlf remove some crlf
        | newline remove some newline
        | skip
    ]
]

但使用字符集可能会更快:

text: complement charset crlf
parse string-with-newlines [
    any [
          some text
        | crlf any crlf
        | newline remove any newline
    ]
]

答案 1 :(得分:3)

replace/all {Line1^/^/Line2} {^/^/} {^/}

答案 2 :(得分:1)

没有办法只修剪,但这里有一个带有removeach的解决方案,同时也删除了前导LF

trim-emptyline: func [
    str [string!] 
    /local lfb4 lfnow c
] [
    lfb4: true 
    remove-each c str [also all [lfnow: lf = c lfb4] lfb4: lfnow]
    str
]