我想删除字符串中的所有字符,除了:
> – 或_或.
>通过Z.
>通过z
> 0到9
>空间
在linux命令行上,使用sed我会这样做:
$echo "testing-#$% yes.no" | sed 's/[^-_.a-zA-Z0-9 ]//g'
输出:
testing- yes.no
如何用PARSE在Red语言中实现相同的效果?我在看:
> http://www.rebol.com/docs/core23/rebolcore-15.html#section-1
> http://rebol-land.blogspot.in/2013/03/rebols-answer-to-regex-parse-and-rebol.html
> http://ross-gill.com/page/Beyond_Regular_Expressions
但是,我无法编纂它.我试过了:
>> parse "mystring%^&" [#a - #z #A - #Z #0 - #9] == false >> parse "mystring%^&" [#a-#z#A-#Z#0-#9] == false
解决方法
首先,字符必须是引号,#a是问题!,字符!是#“a”.你的规范是正确的,但你必须将它传递给charset函数,才能做出一个比特!形成它.
然后你可以解析你的字符串,保持有效字符和滑动无效:
>> chars: charset [#"a" - #"z" #"A" - #"Z" #"0" - #"9"] == make bitset! #{000000000000FFC07FFFFFE07FFFFFE0} >> rejoin parse "mystring%^&asdf" [collect some [keep chars | skip]] == "mystringasdf"