java - 在Java中使用正则表达式获取特殊字符之间的字符串

标签 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);

打印“正方形”

最佳答案

正则表达式:

@function(.*?)@

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

functionName = m.group(1);

group(int group) Returns the input subsequence captured by the given group during the previous match operation.

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

编辑

添加“\s”以修剪空格

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

关于java - 在Java中使用正则表达式获取特殊字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43856405/

相关文章:

Java Bean 返回值为 Null

java - 将线程保持在 Spring 休息请求中以进行长轮询

javascript - 仅当字符串是十进制数时,才将逗号替换为句点

android 为位图命名并保存

php - 将 C(\0 终止)字符串转换为 PHP 字符串

c# - 为什么字符串的索引器是只读的?

java - 反转整数数组索引

java - 如何在Java中通过executeUpdate命令使用Access的Replace()函数?

java - 是否有 CheckStyle 规则强制 if else 关键字在 if/else 阶梯中位于同一行?

javascript - 将字符串拆分为 float 和字符数组