使用Java

时间:2017-05-08 20:03:33

标签: java regex string regex-group

我正在尝试在输入字符串“@function”和“@”之间获取一个字符串:

inputText = "@function square @default 2 @type Int @brief squares default number"

为了在'@function'和'@'之间获取文本,正则表达式是什么?

为了以下(在Java中):

Pattern p = Pattern.compile( some magic regex expression... );
Matcher m = p.matcher(inputText);
functionName = m.group;
System.out.println(functionName);

打印“square”

1 个答案:

答案 0 :(得分:3)

正则表达式:

@function(.*?)@

这应该将“square”放入第一个捕获组。然后,您可以使用Matcher.group(int)来抓取该组。如下面的代码所示:

functionName = m.group(1);

  

组(int组)   返回在上一个匹配操作期间由给定组捕获的输入子序列。

     

<强> https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group(int)

修改

添加'\ s'来修剪空白

https://regex101.com/r/PH54FV/1