我有这个字符串(例如)
abcd CCC abcd abcd CCC abcd abcd BBB abcd abcd DDD abcd abcd CCC abcd
并且需要找到从CCC到DDD的BBB中的最小范围子串
abcd CCC abcd abcd CCC abcd abcd BBB abcd abcd DDD abcd abcd CCC abcd
但我的正则表达不起作用((
/(?!.+CCC).+BBB.+DDD/i
这个正则表达式适用于没有最后一个CCC的字符串,但不是很好......
请帮助我,对不起我的英语=)
答案 0 :(得分:1)
尝试
CCC(?:(?!CCC).)*BBB(?:(?!CCC.*BBB).)*DDD
它与距CCC
最近的BBB
匹配,然后在最终CCC ...something... BBB
之前检查是否没有其他DDD
。
给定以下输入字符串,匹配为粗体
abcd CCC abcd abcd CCC abcd abcd BBB abcd CCC abcd DDD abcd abcd CCC abcd
但请注意,它会找到此类序列的 first 的最小形式。如果字符串下方的CCC ...something... BBB ...something... DDD
更小,则无法找到它。我认为任何正则表达都不会
因此,对于以下输入字符串,匹配以粗体显示,而最短的整数以斜体显示:
abcd CCC abcd abcd CCC abcd abcd BBB abcd DDD abcd abcd CCC abcd BBB abcd DDD abcd
答案 1 :(得分:-1)