如何用Swift Regex Builder构建匹配2个及以上空格或制表符的正则?
Swift Regex Builder 实现匹配2个及以上空格或制表符
对应你给出的传统正则let twoOrMoreSpacesOrTab = /\s{2,}|\t/,正确的Swift Regex Builder写法如下:
let twoOrMoreSpacesOrTab = Regex { ChoiceOf { Repeat(count: 2...) { CharacterClass.whitespace } "\t" } }
代码说明
Repeat(count: 2...) { CharacterClass.whitespace }等价于传统正则的\s{2,},用于匹配连续2个及以上的空白字符(包含空格、制表符等)。"\t"直接匹配单个制表符,对应正则里的\t。
你原有代码的问题
你之前写的OneOrMore(" ")会匹配一个或多个连续的双空格组合(比如" "会被拆成两组" "匹配),而非一次性匹配连续2个及以上的空格,因此不符合需求。
如果你的实际需求是仅匹配2个及以上的空格,或者任意数量(至少1个)的制表符,可以调整为:
let twoOrMoreSpacesOrTabs = Regex { ChoiceOf { Repeat(count: 2...) { " " } OneOrMore("\t") } }
内容的提问来源于stack exchange,提问作者Godfather
相关产品推荐
相关产品推荐

