gpt4 book ai didi

swift - 构建 Swift/ObjC 正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 07:21:33 25 4
gpt4 key购买 nike

在文本字符串中,我试图获取之间的所有内容

[DATA FORMAT]/DATA FORMAT]

列格式:/DATA FORMAT]

为了实现这个目标,我使用了正则表达式。

虽然模式

“\\[数据格式\\](.*?)\\[/数据格式\\]”

按预期工作,模式

“列格式(*.?)\\[/DATA FORMAT\\]”

报错

可选(“值“列格式(*.?)\\[/DATA FORMAT\\]”无效。”)值“Columns Format(*.?)\[/DATA FORMAT\]”无效。

在控制台打印(第一行:localizedFailureReason,第二行:localizedDescription)

我错过了什么?

代码:

extension String
{
func match (pattern: String,
options: RegularExpression.Options = [.caseInsensitive, .dotMatchesLineSeparators]) -> [String]
{
do
{
let regex = try RegularExpression(pattern: pattern, options: options)
let regexAnsw = regex.matches(in: self, options: RegularExpression.MatchingOptions.withTransparentBounds, range: NSMakeRange(0, self.characters.count))

var retStrings = [String]()

for rs in regexAnsw
{
if let range = self.range(from: rs.range)
{
retStrings.append(self.substring(with: range))
}
else
{
print("match: cant' convert NSRange to range")
}
}

return retStrings
}
catch let error as NSError
{
print(error.localizedFailureReason)
print(error.localizedDescription)

return [String]()
}
}
}

最佳答案

您在第二个正则表达式中交换了 *.(在“Column Format”之后的捕获组中)。这使得正则表达式无效; * 没有指代任何东西。

关于swift - 构建 Swift/ObjC 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com