能否用单个POSIX-Extended正则匹配gawk中符合要求的最短子串?
问题:用单个POSIX扩展正则匹配特定最短子串
需求说明
需要编写单个POSIX-Extended正则表达式,匹配字符串中所有满足以下条件的最短子串:
- 子串以
a开头、以b结尾 - 子串内部不包含
cb、cd或fg这三个连续字符组合
该正则需能在gawk的gensub、match或split函数中正常使用。
验证示例
- 输入字符串:
"0a3cbsbtacc12bbb"→ 预期匹配:"acc12b" - 输入字符串:
"a4cdddbbb5"→ 预期结果:无匹配子串 - 输入字符串:
"1taa/b///fafgfgcb2abb"→ 预期匹配:"a/b"和"ab"
限制条件
“标记负匹配”类方法不适用,必须使用单个正则表达式。例如使用split函数时,期望通过分隔得到的匹配结果数组直接返回目标子串(如示例3中,seps[1] == "a/b"且seps[2] == "ab")。
核心疑问
是否可以写出符合上述所有要求的正则?若无法实现(或实现的正则性能过低),请说明原因。
内容的提问来源于stack exchange,提问作者lyrically wicked
相关产品推荐
相关产品推荐

