gpt4 book ai didi

Swift:使用正则表达式检查前缀

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:40 24 4
gpt4 key购买 nike

我正在尝试检查字符串是否以遵循正则表达式模式的文本开头。有没有办法使用 string.hasPrefix() 来做到这一点?

到目前为止我的实现:

let pattern = "[Ff][Yy][Ii](.)?"
let regex = try? NSRegularExpression(pattern: pattern, options: [])

if firstRowText.hasPrefix(regex) { //Cannot convert value of type NSRegularExpression to String

}

最佳答案

您应该使用 range(of:options:range:locale:) 的正则表达式使用 .anchored 传递 .regularExpression 选项选项:

if firstRowText.range(of: "[Ff][Yy][Ii]", options: [.regularExpression, .anchored]) != nil {...}

.anchored 选项使正则表达式引擎仅在字符串的开头搜索匹配项。

为了使您的正则表达式以不区分大小写的方式匹配,您可以在当前选项旁边传递另一个选项,.caseInsensitive ,并使用更短的正则表达式,例如 "FYI":

if firstRowText.range(of: "FYI", options: [.regularExpression, .anchored, .caseInsensitive]) != nil {

参见 Swift online demo .

请注意,您还可以使用内联修饰符选项 (?i) 来设置不区分大小写:

"(?i)FYI"

关于Swift:使用正则表达式检查前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55136230/

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