想象一下这句话:
The **quick** brown **fox** ...
如果我运行以下regex
let boldPattern = "\\*{2}([\\w ]+)\\*{2}"
let boldRegex = try NSRegularExpression(pattern: boldPattern)
let str = "The **quick** brown **fox** ..."
let results = regex.matches(in: str, range: NSRange(str.startIndex..., in: str))
results.forEach {
print("$0")
}
我能够获得**
之间的所有单词。
我读过有关负正则表达式的内容,它会返回除了我们试图“避免”之外的所有单词。
鉴于上述句子,有没有办法使用否定regex
来获取与boldPattern
不匹配的字词,所以我会得到The brown ...
,避免**words**
1}} ??
修改
我正在寻找这种模式((?!\\*{2}([\\w ]+)\\*{2}).*)
的东西,搜索不以** word **
开头的单词
答案 0 :(得分:1)
一种方法是使用NSRegularExpression
stringByReplacingMatches
方法。
示例:
let boldPattern = "\\*{2}([\\w ]+)\\*{2}"
let boldRegex = try NSRegularExpression(pattern: boldPattern)
let str = "The **quick** brown **fox** ..."
let unmatchedString = boldRegex.stringByReplacingMatches(in: str, options: [], range: NSMakeRange(0, str.count), withTemplate: "")
print(unmatchedString)
// prints: The brown ...