正则表达式不起作用,为什么?

时间:2012-09-14 13:07:49

标签: java regex

我正在尝试匹配以下字符串:

"§{characters.characters}"
"§{characters_characters}"
"§{characters_characters.characters}"

我这样做了:

Pattern.compile("\\§\\{[a-zA-Z]+([_\\.][a-zA-Z]+)*\\}")

但它根本不起作用。谁知道为什么?

如果我放Pattern.compile("\\§\\{([a-zA-Z]+)([_\\.][a-zA-Z]+)*\\}")只有像“character”这样的字符串就可以了。但不明白为什么......

1 个答案:

答案 0 :(得分:3)

匹配您的测试字符串

[a-zA-Z]+([_\\.][a-zA-Z]+)*

工作正常,\\§\\{\\}不是测试字符串中的字符,所以它们不匹配,你的正则表达式正在寻找像

这样的字符
\§\{characters_characters.characters\} 

请参阅http://regexr.com?325e8

中的[a-zA-Z]+([_\\.][a-zA-Z]+)*

\\§\\{([a-zA-Z]+)([_\\.][a-zA-Z]+)*\\}位于http://regexr.com?325ee


修改

根据您的评论,§{([a-zA-Z]+)([_\\.][a-zA-Z]+)*}应该http://regexr.com?325gp