给定一个诸如“fooBAR”之类的字符串,我希望匹配字符串末尾的大写字母(即“BAR”),并具有以下曲折:
- 匹配必须包含至少两个字母
- 比赛不得包含以下任何内容:1D、2D、3D、4D
例子:
"fooB" -> ""
"fooBAR" -> "BAR"
"foo64BAR" -> "BAR"
"foo64BR" -> "BR"
"fooDBAR" -> "DBAR"
"foo12BAR" -> "BAR"
"foo1DBAR" -> "BAR"
琐碎的正则表达式
[A-Z][A-Z]+
最后一个示例失败(返回“DBAR”而不是“BAR”。)
消极的回顾,例如
(?<![1-4D])[A-Z][A-Z]+
最后一个例子也失败了(返回“AR”而不是“BAR”。)
我有一种感觉,这应该是直截了当的,但为了我的爱,我找不到解决方案。有任何想法吗?