java - 如何在java中提取前两个字符和后两个字符之间的字符串?
问题描述
编辑:我想提取开头和结尾两个特殊字符之间的字符串。
输入可以是以下之一:
{[TestString]}
{TestString}
[TestString]
[TestString]}
{[TestString
预期输出:TestString
这里的特殊字符{
, [
, ]
,}
是可选的。输入字符串的开头和结尾可以有/没有这些特殊字符。
在下面使用这个正则表达式Pattern.compile()
,我没有得到预期的结果。
(?=\[|\{)(.*?)(?=\]|\})
解决方案
您在应该使用lookbehind 的地方使用了lookahead 断言。字符类确保其中之一[{
和]}
将匹配:
(?<=[{\[])(.*?)(?=[]}])
这将返回TestString
在 regex101.com 上进行实时测试。请注意,如果要使用 Java 字符串构建正则表达式,则需要将反斜杠加倍(检查 Regex101 的代码生成器功能)。
推荐阅读
- jquery - 如何将 if 语句应用于 DataTable 选项
- elasticsearch - 如何使用弹性搜索中所有字段的不同分析器进行索引
- graphql - 如何使用 AWS App Sync 中的数组获取对象列表?
- angular12 - NG0303:无法绑定到“ngForOf”,因为它不是“div”的已知属性
- python - 从列表中为每个键创建多个值的字典
- postgresql - Postgresql ,将慢查询记录到其他文件
- flutter - 如何确保我在颤动中的图像的 url 不会显示在屏幕上而不是图像上?
- html - 如何确定填写了搜索查询的 URL
- python - 如何在 python tkinter 中将此条形图转换为矩形框?
- python - Pytube:如何为函数progress_Check添加参数