我正在尝试使用这个字符串:
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/