问题描述
我正在尝试编写一个非常具体的正则表达式,该正则表达式匹配 { } 之间的所有内容,除了个位数。所以,这里有几个例子:
- {a} - 匹配
- {aB} - 匹配
- {1} - 不匹配
- {1g} - 匹配
- {55-5} - 匹配
- {46512} - 匹配
- {5} - 不匹配
- {4E-2D} - 匹配
- {A4} - 匹配
- {ASD 5D} - 匹配
到目前为止,对我来说正确的是匹配开头的大括号 (?<=\{)
和结尾的 (?=\})
,但中间的表达式不成功。非常感谢一些想法。
解决方法
你有两个部分的模式。匹配除单个数字之外的其他内容:
(?<={)(?!\d})[^{}]+(?=})
模式匹配
-
(?<={)
向左断言{
-
(?!\d})
断言不\d}
向右 -
[^{}]+
匹配除{
或}
之外的任何字符 -
(?=})
在右侧断言}