如何在java中提取前两个和后两个字符之间的字符串?

Red*_*unt 0 java regex

编辑:我想提取开头和结尾两个特殊字符之间的字符串。

输入可以是以下之一:
{[TestString]} {TestString} [TestString] [TestString]} {[TestString

预期输出: TestString

这里的特殊字符{, [, ],}是可选的。输入字符串的开头和结尾可以有/没有这些特殊字符。

在下面使用这个正则表达式Pattern.compile(),我没有得到预期的结果。

(?=\[|\{)(.*?)(?=\]|\})

Tim*_*ker 5

您在本应使用后视的地方使用了先行断言。字符类确保其中一个[{]}将匹配:

(?<=[{\[])(.*?)(?=[]}])
Run Code Online (Sandbox Code Playgroud)

这将返回 TestString

在 regex101.com 上进行实时测试。请注意,如果您想使用 Java 字符串构建正则表达式,则需要将反斜杠加倍(检查 Regex101 的代码生成器功能)。