我试图找到2个符号“+ *”,“ - /”等,而且我想确定它是“3”,“4”“* 4”等。我会在里面寻找它和数组或字符串,如[“2”,“+”,“3”,“/”,“2”]
答案 0 :(得分:0)
如果我理解你的问题,你会尝试匹配一个符号,后跟一个数字或一个数字后跟一个符号
正则表达式看起来像这样
/^[+-\/\*]\d$|^\d[+-\/\*]$/
击穿
^
- 行首
[+-\/\*]
- 任何一个符号。必须转义星号和正斜杠
\d
- 匹配任何数字(0到9)
$
- 行尾
|
- 或
^\d[+-\/\*]$
- 以数字开头,以符号结尾。
如果您正在寻找,请告诉我。否则我可以解决这个问题。
在Ruby中,让我们假装你有一个数组如下
array = ["2" , "+", "3","/" , "2"]
您可以找到任何两个连续元素是否与上述模式匹配,如下所示
array.each_cons(2).to_a.any? { |combo| combo.join.match(/^[+-\/\*]\d$|^\d[+-\/\*]$/) }
击穿
each_cons(2)
函数查找数组中的每两个连续字符any?
方法查找数组中的任何元素是否满足条件答案 1 :(得分:0)
我没有得到关于“3-”等的第二部分。但其余的基本想法是:
your_array.each do |element|
result element.match([/\+\/-]{2}/)
end
请注意,在ruby中使用时,必须使用反斜杠转义以下字符:
. | ( ) [ ] { } + \ ^ $ * ?.