我有一些像这样的弦
my{test}值
我需要创建一个正则表达式,它将在没有空格的情况下获取{}
内的所有内容。
使用下一个模式(?
如果我像这样把
\s*
放在积极的前面(?
无法执行正则表达式。java.util.regex.模式语法异常:后视组在索引8附近没有明显的最大长度(?
有没有可能在没有每个正则表达式匹配的
trim()
的情况下实现这一点?
你不需要向前看或向后看。像这样简单的正则表达式就足够了,
\{\s*(.*?)\s*\}
演示,https://regex101.com/r/REDmDT/2(包括一些更多的示例字符串)
就像你说的,“我需要创建一个正则表达式,它将在没有空格的情况下获取{}内的所有内容”
这个正则表达式为您提供了curley大括号内的所有内容,同时排除了右 /left空间,并保留了内部的任何空间。
这里是一个java代码演示相同。
public static void main(String[] args) throws IOException {
List<String> list = Arrays.asList("my {test} value", "my { test } value", "my { test } value",
"my { test hello I am } value", "my { testing 10 times } value");
Pattern p = Pattern.compile("\\{\\s*(.*?)\\s*\\}");
list.forEach(x -> {
Matcher m = p.matcher(x);
if (m.find()) {
System.out.println(x + " --> " + m.group(1));
}
});
}
这个输出,
my {test} value --> test
my { test } value --> test
my { test } value --> test
my { test hello I am } value --> test hello I am
my { testing 10 times } value --> testing 10 times
我目前正在玩正则表达式,试图更好地理解它们,并且有一个我现在似乎正在努力的场景,因为我不知道这是否可以通过正则表达式来实现。 我有这样的文本字符串 该清单可能仍在进行中。我想匹配(选择)内部关键字之间的空格。因此,在第二行中,它将是和之间的空格。 和我能够匹配关键字中包含多个单词的行。将第一部分<代码>( 编辑:假设这些行之间还有一些其他文本,所以简单的< code>\b不能作为正则表达式使用。
给定下面的字符串 [NeMo(PROD)]10.10.100.100(EFA-B-3)[博科FC-Switch]传感器:电源#1(SNMP自定义表)关闭(无此名称(SNMP错误#2)) 我尝试获取多个匹配项以提取以下值: 因为我是正则表达式的初学者,所以我试图定义一些“规则”: 提取第一个圆括号内的第一个值,例如PROD 提取第一个闭合方括号和第二个开口圆括号之间的值,例如10.10.100.10
问题内容: 当字符串以数字开头时,我需要匹配,然后是一个点,然后是一个空格和1个或多个大写字符。匹配必须发生在字符串的开头。我有以下字符串。 我尝试过的正则表达式是: 它不匹配。一个有效的正则表达式将对这个问题有什么作用? 问题答案: (对不起,我先前的错误。大脑现在坚定地投入了。嗯,也许。) 这有效: 分解: =字符串开头 =一个或多个数字 (之所以转义,是因为它在字符串中,因此) =文字(或者
问题内容: 我从以下格式的文件中获取输入: 现在,我想在我的Java代码中读取int1,int2,int3和int4。我该如何在Java中使用正则表达式匹配。谢谢。 问题答案: 为了避免空值:
问题内容: 我正在尝试对Elasticsearch查询进行否定前瞻,正则表达式为: 我要匹配的文本是: 归还了住宿费用,但仍存在建筑问题。喷洒化学药品会引起健康问题,并引起眼睛刺激。 我没有任何幸运。有人可以帮忙吗? ES查询: 问题答案: 您可以使用以下两种方法之一来解决此问题: 要么 带可选的(因为 默认情况下 为ON ) 它是如何工作的? 在常见的NFA正则表达式中,通常会有负面的环顾四周,
有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。