gpt4 book ai didi

欧洲日期的正则表达式/正则表达式 ("j. F Y")

转载 作者:行者123 更新时间:2023-11-28 10:22:07 26 4
gpt4 key购买 nike

我需要一种在 Swift 2.0 中使用 .RegularExpressionSearch 查找日期的方法,以欧洲风格编写“2015 年 11 月 6 日”“2015 年 2 月 13 日”“2015 年十二月 24 日”(可选空格)。

我使用 this very helpful regex tester Web site 尝试了很多表达式,但是,我无法获得有效的解决方案。感谢您的帮助!

最佳答案

您可以使用以下正则表达式:

let regex = try NSRegularExpression(pattern: "\\d+\\.\\s*\\p{L}+\\s*\\d{4}", options: []) 

参见 regex demo

正则表达式将匹配:

  • \d+ - 1 位或更多位(您可以使用限制量词限制为 1 或 2:\d{1,2})
  • \. - 文字点
  • \s* - 0 个或更多空格
  • \p{L}+ - 纯字母符号序列
  • \s* - 0 个或更多空格
  • \d{4} - 恰好 4 位数字。

Swift code demo :

func matchesForRegexInText(regex: String, text: String) -> [String] {

do {
let regex = try NSRegularExpression(pattern: regex, options: [])
let nsString = text as NSString
let results = regex.matchesInString(text,
options: [], range: NSMakeRange(0, nsString.length))
return results.map { nsString.substringWithRange($0.range)}
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
return []
}
}

let string = "6. November 2015 and 13. Februar 2015 or 24.Dezember2015 1. My christmas gift 2015 01.01.2015"
let matches = matchesForRegexInText("\\d+\\.\\s*\\p{L}+\\s*\\d{4}", text: string)
print(matches)

结果:["6. November 2015", "13. Februar 2015", "24.Dezember2015"]

关于欧洲日期的正则表达式/正则表达式 ("j. F Y"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563622/

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