如何在Groovy中分割字符串?

时间:2019-05-27 01:56:44

标签: regex string groovy split regex-group

我有一个普通的脚本,您可以在此link中找到。

String str = '# hosts.inventory [vpc] vpc ec2  [ec2] vpc ec2  [project:children] vpc ec2  [author]   [publisher]   [dispatcher] '
str.split((/^\[author\]$/))
for( String values : str )     
println(values);

我想将我的字符串分成两部分:

  1. [author]之前的所有事物,即# hosts.inventory [vpc] vpc ec2 [ec2] vpc ec2 [project:children] vpc ec2
  2. [author]之后的所有内容,例如[publisher] [dispatcher]

我的正则表达式似乎无效。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这可能很简单:

String str = '# hosts.inventory [vpc] vpc ec2  [ec2] vpc ec2  [project:children] vpc ec2  [author]   [publisher]   [dispatcher] '
values = str.split((/(\[author\])/))
println(values);

Groovy


或者我猜您可能正在寻找的表达式类似于:

(.+)(\[author\])(.+)

这里有三个捕获组,其中两个分别位于[author]之前和之后:

(.+)

和一位作者:

(\[author\])

Demo