gpt4 book ai didi

regex - 从 Red 语言的字符串中删除特殊字符

转载 作者:行者123 更新时间:2023-12-01 18:46:56 26 4
gpt4 key购买 nike

我想删除字符串中的所有字符,除了:

  • -_.
  • AZ
  • az
  • 09
  • 空间

在 Linux 命令行上,使用 sed 我会这样做:

$ echo "testing-#$% yes.no" | sed 's/[^-_.a-zA-Z0-9 ]//g'

输出:

testing- yes.no

如何使用 PARSE 在 Red 语言中达到相同的效果?我看了:

但是,我无法将其编入法典。我尝试过:

>> parse "mystring%^&" [#a - #z #A - #Z #0 - #9]
== false
>> parse "mystring%^&" [#a-#z#A-#Z#0-#9]
== false

最佳答案

首先注意 ISSUE! 之间的区别!还有字符!

#a #b #c  ; issues
#"a" #"b" #"c" ; chars

然后,您可以为要保留的字符或要丢弃的字符建立字符集(BITSET!类型)。我们将在这里执行前者:

good-chars: charset [#"a" - #"z" #"A" - #"Z" #"0" - #"9"]

既然我们已经做到了,我们可以通过一些不同的方式来解决这个问题:

解析

一个相当基本的解析循环 - 跳过任何好字符并删除其他任何内容。

parse "mystring%^&" [any [some good-chars | remove skip]]

删除每个

希望不言自明:

remove-each char "mystring%^&" [not find good-chars char]

关于regex - 从 Red 语言的字符串中删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46328905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com