Vin*_*off 1 ruby regex rubular
我必须清理参数中传递的字符串,并删除所有小写字母和所有特殊字符,除了:
所以我在参数中传递了这个字符串:
aA azee + B => C=
我需要清理此字符串以获得此结果:
A + B => C
我做
string.gsub(/[^[:upper:][+|^ ]]/, "")
输出: "A + B C"
我不知道如何在ruby中用正则表达式选择=>(和for <=>)字符串
我知道如果我将string.gsub(/ [^ [:upper:] [+ | ^ =>]] /,"")添加到我的正则表达式中,=我的字符串中传递的最后一个参数也会被选中
您可以尝试另一种方法:匹配您想要保留的所有内容,然后加入结果.
您可以使用此正则表达式来匹配您要保留的所有内容:
[A-Z\d+| ^]|<?=>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这只是一个使用|并[]创建一个您想要保留的字符串列表:大写,数字,+,|,空格,^,=>和<=>.
例:
"aA azee + B => C=".scan(/[A-Z\d+| ^]|<?=>/).join()
Run Code Online (Sandbox Code Playgroud)
输出:
"A + B => C"
Run Code Online (Sandbox Code Playgroud)
请注意,"A"和"+"之间有2个连续的空格.如果你不想要,你可以打电话String#squeeze.