我正在尝试匹配以下字符串:
"§{characters.characters}"
"§{characters_characters}"
"§{characters_characters.characters}"
等
我这样做了:
Pattern.compile("\\§\\{[a-zA-Z]+([_\\.][a-zA-Z]+)*\\}")
但它根本不起作用。谁知道为什么?
如果我放Pattern.compile("\\§\\{([a-zA-Z]+)([_\\.][a-zA-Z]+)*\\}")
只有像“character”这样的字符串就可以了。但不明白为什么......
答案 0 :(得分:3)
匹配您的测试字符串
[a-zA-Z]+([_\\.][a-zA-Z]+)*
工作正常,\\§\\{
和\\}
不是测试字符串中的字符,所以它们不匹配,你的正则表达式正在寻找像
\§\{characters_characters.characters\}
中的[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