如果您正在开发跨平台(macOS 和 Linux)命令行应用程序,并且您想使用正则表达式,那么 Regex
正是您所需要的。
您可以将 Regex
与 Guaka 结合使用来创建出色的命令行应用程序。
let r = try! Regex(pattern: "Hello [a-z]+ame")
r.matches("Hello Name")
let r = try! Regex(pattern: "Hello (.*) name")
let result = r.captures(string: "Hello mr name")
result
是一个 CaptureResult
数组
~=
运算符// Regex ~= String
let value = try! Regex(pattern: "Hello [a-z]+ame") ~= "Hello Name"
// value is true
// String ~= Regex
let value = "Hello Name" ~= try! Regex(pattern: "Hello [a-z]+ame")
// value is true
switch "Hello I am on swift" {
case try! Regex(pattern: "Hello [a-z] am .*"):
// First
case try! Regex(pattern: ".*"):
// Second
}
第一个匹配的正则表达式将被选中。 在上面的例子中,第一个 case 被匹配。
用字符串替换模式
"This string is wrong".replacing(pattern: "w.*g", withString: "right")
// "This string is right"
CaptureResult
表示捕获的字符串,它包含:
originalString
原始字符串startIndex
捕获的起始索引endIndex
捕获的结束索引range
捕获的字符串的范围string
捕获的字符串初始化 Regex
对象时,可以传递 RegexOptions
选项集。有关这些标志含义的讨论,请参阅 GNU 正则表达式文档
matches(_:options:)
接受 MatchOptions
选项集。 有关这些标志含义的讨论,请参阅 GNU 正则表达式文档
您可以使用 Swift Package Manager (SPM) 和 Carthage 安装 Regex
将 Regex 作为依赖项添加到您的 Package.swift
中
import PackageDescription
let package = Package(name: "YourPackage",
dependencies: [
.Package(url: "https://github.com/getGuaka/Regex.git", majorVersion: 0),
]
)
github "getGuaka/Regex"
测试可以在这里找到。
使用以下命令运行它们
swift test
直接发送 PR!我们不咬人 ;)