如何使用正则捕获非字符串开头的字母开头交替字母数字序列
解决方案
你可以使用如下正则表达式直接匹配需要移除的目标序列:
(?<!^)[A-Z]+(?:\d+[A-Z]+)+
如果需要支持小写字母,调整为:
(?<!^)[A-Za-z]+(?:\d+[A-Za-z]+)+
如果允许目标序列末尾以数字结尾,调整为:
(?<!^)[A-Z]+(?:\d+[A-Z]+)*\d*
规则说明
(?<!^):负向零宽后行断言,限定匹配位置不能是字符串起始位置,符合「序列在开头时不捕获」的要求[A-Z]+:匹配序列开头的字母,满足「以字母开头」的规则(?:\d+[A-Z]+)+:非捕获分组,匹配至少一组「数字+字母」的组合,保证序列整体是字母数字交替的结构
使用方法
在替换功能中,将上述正则作为匹配规则,替换内容留空,即可直接删除所有符合要求的目标序列,保留起始位置的同类序列。
内容的提问来源于stack exchange,提问作者mikelowry
相关产品推荐
相关产品推荐

