是否可以使用通配符在另一个字符串中搜索字符串? 我想找到“”text1“=”text2“”的出现,其中text1和text2可以是任何字符串。
我的初始字符串是
“这是我的字符串。此字符串包含”text1“=”text2“以及更多”
搜索时我不知道text1和text2。 我想过像“”“=”“”这样的东西,但没有结果。
编辑: 让我尝试解释其他的例子。 我有* .swift文件,有两次locX扩展名
labelPatternForExpresion.stringValue = "labelPatternForExpresion".locX(withComment: "comment one")
labelPath.stringValue = "labelPathToProject".locX(withComment: "comment six")
labelHeader.stringValue = "labelFileHeader".locX(withComment: "no comment")
btnFromFile.title = "btnFromFile".locX(withComment: "empty comment")
btnCancel.title = "btnCancel".locX(withComment: "")
我需要遍历文件并找到所有对键 - 注释:
“labelPatternForExpresion” - “评论一个”
“labelPathToProject” - “评论六”
........
........
“btnCancel” - “”
答案 0 :(得分:1)
假设您的模式是:
"textA" - "textB"
您要捕获textA
和textB
。使用NSRegularExpression
:
let str = "\"labelPatternForExpresion\" - \"comment one\""
// NSRegularExpression still deals in NSString so let's make a copy to
// lessen the pain later
let nsStr = str as NSString
let regex = try! NSRegularExpression(pattern: "\"(.+)\" - \"(.+)\"", options: [])
if let match = regex.firstMatch(in: str, options: [], range: NSMakeRange(0, nsStr.length)) {
let lhs = nsStr.substring(with: match.rangeAt(1))
let rhs = nsStr.substring(with: match.rangeAt(2))
print(lhs)
print(rhs)
}