我正在编写数学表达式检查器。我有这个字符串:
Oper = "((234+332)+(cos4-sin65))"
我想通过分离所有"()"
和运算符减去数字或三角比来拆分此字符串,以获得以下结果:
Oper = ['(', '(', '234', '+', '332', ')', '+', '(', 'cos4', '-', 'sin65', ')', ')']
拆分会如何?
答案 0 :(得分:1)
"((234+332)+(cos4-sin65))".split /([[:alpha:]]*\d+)*/
# => ["(", "(", "234", "+", "332", ")", "+", "(", "cos4", "-", "sin65", ")", ")"]
不使用任何字符或可选的字母数字+数字分割整个字符串。
答案 1 :(得分:1)
oper = "((234+332)+(cos4-sin65))"
oper.scan /[^[:alnum:]]|[[:alnum:]]+/
#=> ["(", "(", "234", "+", "332", ")", "+", "(", "cos4", "-", "sin65", ")", ")"]
扫描一个非字母数字字符或一个或多个字母数字字符。