我有以下字符串:"@ [1484987415095898:274:Page Four]"并且我想要捕获名称,所以我写了以下regexp
@\[[\d]+:[\d]+:(.*)]
它似乎工作,但现在我正在努力了解如何替换以前的字符串与捕获组一.
即
"Lorem ipsum @ [1484987415095898:274:Page Four] dolores" - >
"Lorem ipsum Page Four dolores"
注意,我看到了如何使用此堆栈问题获取捕获组, 但是,如何找到从中提取的原始字符串并替换它?
您需要$1使用包含第一个捕获组捕获的内容的替换反向引号替换整个匹配项.
此外,如果您决定稍后扩展模式,我建议编写[\d]as \d以避免对字符类联合的误解.此外,使用.*?懒惰点匹配更安全到达第一个]而不是最后一个](如果你使用.*贪婪的变化).但是,这取决于实际要求.
使用以下任一方法:
let txt = "Lorem ipsum @[1484987415095898:274:Page Four] dolores"
let regex = NSRegularExpression(pattern: "@\\[\\d+:\\d+:(.*?)\\]", options:nil, error: nil)
let newString = regex!.stringByReplacingMatchesInString(txt, options: nil, range: NSMakeRange(0, count(txt)), withTemplate: "$1")
print(newString)
// => Lorem ipsum Page Four dolores
Run Code Online (Sandbox Code Playgroud)
要么
let txt = "Lorem ipsum @[1484987415095898:274:Page Four] dolores"
let newString = txt.replacingOccurrences(of: "@\\[\\d+:\\d+:(.*?)]", with: "$1", options: .regularExpression)
print(newString)
// => Lorem ipsum Page Four dolores
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |