如何修正符合指定排除规则的制表符tab匹配正则表达式?
正则表达式修正方案
你需要的修正后正则如下:
(?<!^(?:\d+|[A-Z])\.?)(?<!^)\t
规则匹配说明
(?<!^):负向逆序环视,排除制表符直接位于行首的场景,对应"->text"不匹配的要求(?<!^(?:\d+|[A-Z])\.?):负向逆序环视,排除制表符跟在行首列表标记后的场景:\d+匹配数字列表前缀[A-Z]匹配大写字母列表前缀\.?匹配列表标记后可选的点号,覆盖1.、1、A.、A四种列表标记格式
\t:匹配目标制表符
场景覆盖验证
所有测试用例均满足要求:
"->text":制表符位于行首,被(?<!^)拦截,不匹配"1.->text":制表符跟在数字加点的列表标记后,被第二个断言拦截,不匹配"1->text":制表符跟在无点数字列表标记后,被第二个断言拦截,不匹配"A.->text":制表符跟在字母加点的列表标记后,被第二个断言拦截,不匹配"text->text":制表符位于普通文本后,两个断言均通过,正常匹配
内容的提问来源于stack exchange,提问作者Adam Shakhabov
相关产品推荐
相关产品推荐

