有没有办法在Groovy中分步切片字符串?就像我们在Python中一样。
示例:
"(\\+|\\\\|\\*|\\-|\\%|\\=)|([0-9]+)|([a-zA-z_][a-zA-Z0-9_]*)"
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
group 1 group 2 group 3
在Groovy中:
>>> name = "Daniella"
>>> name[1:7:1] #start:end:step
'aniell'
>>> name[1:7:2]
'ail'
这里有步进选项吗?
答案 0 :(得分:2)
在Groovy中,没有特殊的slice语法。 name[1..7]
只是subscripting和range。
而且,如您所见,范围没有定义步骤的方法。
因此,这里没有等效于Python语法的内容。您需要做更多的工作。
一种选择是在范围上使用List.step
方法:
(1..7).step(2)
…甚至直接在起始号码上step
:
1.step(7, 2)
另一种选择是对范围应用元素操作:
(1..14)*.div(2)
可能还有六种其他方式可以做到这一点,但是没有一种方法比您在Python中可以做到的那么简单。