编辑:我想提取开头和结尾两个特殊字符之间的字符串。
输入可以是以下之一:
{[TestString]}
{TestString}
[TestString]
[TestString]}
{[TestString
预期输出: TestString
这里的特殊字符{, [, ],}是可选的。输入字符串的开头和结尾可以有/没有这些特殊字符。
在下面使用这个正则表达式Pattern.compile(),我没有得到预期的结果。
(?=\[|\{)(.*?)(?=\]|\})
您在本应使用后视的地方使用了先行断言。字符类确保其中一个[{和]}将匹配:
(?<=[{\[])(.*?)(?=[]}])
Run Code Online (Sandbox Code Playgroud)
这将返回 TestString
在 regex101.com 上进行实时测试。请注意,如果您想使用 Java 字符串构建正则表达式,则需要将反斜杠加倍(检查 Regex101 的代码生成器功能)。