gpt4 book ai didi

java - 正则表达式过滤掉 "\{"但允许 "{"

转载 作者:行者123 更新时间:2023-11-29 08:07:03 35 4
gpt4 key购买 nike

我正在尝试使用正则表达式来获取以下内容

输入-

{foo}
{bar}
\{notgood}
\{bad}
{nice}
\{bad}

输出-

foo
bar
nice

我想查找所有以 { 开头但不是以 \{ 开头的字符串。我只有五个词作为输入。

我尝试了一个正则表达式,即 "\\{(foo|bar|nice|notgood|bad)",它给出了所有以 { 开头的单词。我不知道如何摆脱 \{。我该怎么做?

最佳答案

你可以使用 negative lookbehind assertion确保 { 仅在前面没有 \ 时才匹配:

List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile(
"(?<!\\\\) # Assert no preceding backslash\n" +
"\\{ # Match a {\n" +
"(foo|bar|nice|notgood|bad) # Match a keyword\n" +
"\\} # Match a }",
Pattern.COMMENTS);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group(1));
}

matchList 将包含 ["foo", "bar", "nice"]

关于java - 正则表达式过滤掉 "\{"但允许 "{",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452309/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com