在swift中用正则表达式替换字符串

时间:2015-09-16 10:35:58

标签: regex swift

我想替换匹配正则表达式模式的字符串的一部分。

我有以下正则表达式模式:

(.+?)@test\.(.+?)

这是一个字符串替换模式:

$1@hoge\.$2

如何在Swift代码中使用它们?

1 个答案:

答案 0 :(得分:8)

在Swift中,您可以使用stringByReplacingMatchesInString进行基于正则表达式的替换。

以下是显示如何使用它的代码段:

MainPage

Swift 4.2更新

<li class="dropdown"><a href="#">Products</a>
            <ul class="products">
                <li>Series</li>
                <li >Purpose
                    <ul >
                        <li>Series123</li>
                        <li>Series456</li>
                     </ul> 
                </li>
            </ul>
        </li>

请注意,我将正则表达式更改为

  • let txt = "myname@test.com" let regex = NSRegularExpression(pattern: "([^@\\s]+)@test\\.(\\w+)", options:nil, error: nil) let newString = regex!.stringByReplacingMatchesInString(txt, options: nil, range: NSMakeRange(0, count(txt)), withTemplate: "$1@hoge.$2") println(newString) - 匹配let txt = "myname@test.com" let regex = "([^@\\s]+)@test\\.(\\w+)" let repl = "$1@hoge.$2" print( txt.replacingOccurrences(of: regex, with: repl, options: [.regularExpression]) ) 或空格
  • 以外的1个或多个字符
  • ([^@\\s]+) - 按字面意思匹配@
  • @ - 按字面意思匹配@,然后匹配1个或多个字母数字字符(test\\.(\\w+))。

请注意,在替换字符串中,您无需转义句点。