排除 NSRegularExpression 中的模式
Exclude pattern in NSRegularExpression
想象一下下面的句子:
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("[=10=]")
}
我能够得到 **
之间的所有单词。
我读过有关负正则表达式的内容,returns 除了我们尝试 "avoid" 之外的每个词 "avoid"。
鉴于上面的句子,有没有办法使用负数 regex
来得到与 boldPattern
不匹配的词,所以我会得到 The brown ...
,避免**words**
??
编辑
我正在寻找围绕此模式 ((?!\*{2}([\w ]+)\*{2}).*)
的内容,搜索不以 ** word **
开头的单词的内容
一种方法是使用 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 ...
想象一下下面的句子:
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("[=10=]")
}
我能够得到 **
之间的所有单词。
我读过有关负正则表达式的内容,returns 除了我们尝试 "avoid" 之外的每个词 "avoid"。
鉴于上面的句子,有没有办法使用负数 regex
来得到与 boldPattern
不匹配的词,所以我会得到 The brown ...
,避免**words**
??
编辑
我正在寻找围绕此模式 ((?!\*{2}([\w ]+)\*{2}).*)
的内容,搜索不以 ** word **
一种方法是使用 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 ...