正则表达式 (Regex)

Build Status codecov Platform Language: Swift Carthage

为什么?

如果您正在开发跨平台(macOS 和 Linux)命令行应用程序,并且您想使用正则表达式,那么 Regex 正是您所需要的。

您可以将 RegexGuaka 结合使用来创建出色的命令行应用程序。

用法

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

CaptureResult 表示捕获的字符串,它包含:

RegexOptions

初始化 Regex 对象时,可以传递 RegexOptions 选项集。有关这些标志含义的讨论,请参阅 GNU 正则表达式文档

MatchOptions

matches(_:options:) 接受 MatchOptions 选项集。 有关这些标志含义的讨论,请参阅 GNU 正则表达式文档

安装

您可以使用 Swift Package Manager (SPM) 和 Carthage 安装 Regex

Swift Package Manager

将 Regex 作为依赖项添加到您的 Package.swift

import PackageDescription

let package = Package(name: "YourPackage",
  dependencies: [
    .Package(url: "https://github.com/getGuaka/Regex.git", majorVersion: 0),
  ]
)

Carthage

github "getGuaka/Regex"

测试

测试可以在这里找到。

使用以下命令运行它们

swift test

贡献

直接发送 PR!我们不咬人 ;)