Groovy中带有步骤的“ Slice”字符串

时间:2018-07-06 01:06:22

标签: python groovy

有没有办法在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'

这里有步进选项吗?

1 个答案:

答案 0 :(得分:2)

在Groovy中,没有特殊的slice语法。 name[1..7]只是subscriptingrange

而且,如您所见,范围没有定义步骤的方法。

因此,这里没有等效于Python语法的内容。您需要做更多的工作。

一种选择是在范围上使用List.step方法:

(1..7).step(2)

…甚至直接在起始号码上step

1.step(7, 2)

另一种选择是对范围应用元素操作:

(1..14)*.div(2)

可能还有六种其他方式可以做到这一点,但是没有一种方法比您在Python中可以做到的那么简单。