ios - 具有特殊字符的 Swift 正则表达式

标签 ios swift regex special-characters

我正在尝试使用这个字符串:

var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~].{8,}$"

作为我的正则表达式模式,但它一直失败说模式无效。我使用 \ 字符对字符进行转义:"\,但它会抛出错误:invalid escape sequence in literal 用于正则表达式关键字符,如 ^ & [ ] | .

为了允许字符,我缺少什么:

 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~   

(包括空格)在我的正则表达式中?我认为这与我的转义方式有关,但我找不到任何关于 SWIFT 正则表达式的字符。

最佳答案

问题在于字符 [\] 需要转义,因为它们在正则表达式中具有特殊含义。

因此您需要在正则表达式中使用\[\\\]。但由于这是在 Swift 字符串中,每个 \ 都需要使用 \ 进行转义。

所以 [\] 在正则表达式中变成 \[\\\] 变成 \\[\\\\\\] 在 Swift 字符串中。

最终的有效字符串是:

var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~].{8,}$"

关于ios - 具有特殊字符的 Swift 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50179785/

相关文章:

ios - Google Drive在ios sdk中集成登录redirect_uri_mismatch错误

ios - Swift 和录音

PHP,将带括号的字符串转换为数组

ios - PFQuery includeKey 给出命令

javascript + 正则表达式

regex - 通过PHP preg_match()匹配多行模式

iphone - 如何合并两个 mp3 文件 iOS?

ios - 如何在单元格内增加 UiImageView 高度时增加 tableViewCell 高度?

ios - 如何以编程方式设置 UICollectionView 宽度

swift - 如何将 react 组件作为 native View 属性传递