Rexy 是 POSIX 正则表达式的纯 Swift 实现。
cflag
) 和正则表达式匹配标志 (eflag
) 的默认常量的选项集当您想要检查给定字符串是否匹配正则表达式时
import Rexy
// Regular way
do {
let regex = try Regex("Tyrannosaurus")
regex.isMatch("Tyrannosaurus") // => true
regex.isMatch("Spinosaurus") // => false
} catch {
print(error)
}
// With custom operators
"Tyrannosaurus" =~ "T.*" // true
"Spinosaurus" =~ "T.*" // false
"Spinosaurus" !~ "T.*" // true
当您想要在输入字符串中搜索正则表达式的所有出现项并获取匹配项时
import Rexy
do {
let regex = try Regex("[a-z]+")
regex.matches("a1b1") // ["a", "b"])
} catch {
print(error)
}
当您只对第一次出现感兴趣时
import Rexy
do {
let regex = try Regex("[a-z]+")
regex.matches("a1b1") // "a"
} catch {
print(error)
}
当您想要匹配和捕获组时
import Rexy
do {
let regex = try Regex("(Tyrannosaurus) (Rex)")
regex.groups("Tyrannosaurus Rex") // => ["Tyrannosaurus", "Rex"]
regex.groups("Spinosaurus") // => []
} catch {
print(error)
}
当您想要将所有匹配正则表达式模式的字符串替换为指定的替换字符串时
import Rexy
do {
let regex = try! Regex("Tyrannosaurus")
regex.replace("Tyrannosaurus Rex Tyrannosaurus", with: "Dinosaur") // => "Dinosaur Rex Dinosaur"
regex.replace("Spinosaurus", with: "Dinosaur") // => Spinosaurus
} catch {
print(error)
}
Rexy
可通过 Swift Package Manager 获得。要安装它,只需将以下行添加到您的 Package.swift
.Package(url: "https://github.com/vadymmarkov/Rexy.git", versions: Version(0,1,0)..<Version(1,0,0))
或者,您可以通过添加 Swift 包依赖项将其安装到您的 Xcode 项目中。
Vadym Markov, markov.vadym@gmail.com
灵感鸣谢归于 POSIXRegex,作者是 Zewo
查看 CONTRIBUTING 文件以获取更多信息。
Rexy 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。