编写一个正则匹配时排除模式的正则表达式

时间:2017-09-14 00:19:24

标签: regex negative-lookahead

我现在一直在努力解决这个问题。尝试编写一个正则表达式,捕获所有在冒号之前有空格:)的地方,除了某些情况。我想抓住与?.* :匹配的案例。就像在,一个前面有空格的问号,一些字符序列,一个空格和一个冒号应该被认为是好的。

我尝试过一系列负面前瞻方法等,但我遇到的问题是主要模式比排除模式更通用,所以它无法排除什么我想要。

\s+:捕获了所有不良案例,但也捕获了两个误报。 (\s+\?.*\s+:)只捕获误报。我如何将它们结合起来,以免我得到误报?

不良案件(应该被抓住):

var type : CGFloat = 5.0
let dictionary = [
    "string" : "key"
]
let dictionary = [Container<Thing?>(value: value) : "woohoo"]

好案例(不应该被抓住):

var aTest = true ? "true" : "false"
let dict = [
    "string": "key"
]
class ATest: SuperType
let multiLineTernary = true
    ? "a String"
    : "b String"

0 个答案:

没有答案