正则表达式 – 从红色语言中删除字符串中的特殊字符

前端之家收集整理的这篇文章主要介绍了正则表达式 – 从红色语言中删除字符串中的特殊字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想删除字符串中的所有字符,除了:

> – 或_或.
>通过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"

猜你在找的正则表达式相关文章