Swift 带有特殊字符的正则表达式
Swift Regex with special Characters
我正在尝试使用这个字符串:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~].{8,}$"
作为我的正则表达式模式,但它一直失败说模式无效。我使用 \
字符对字符进行转义:"
和 \
,但它会抛出错误:invalid escape sequence in literal
对于 ^ & [ ] | .
等正则表达式键字符。
为了允许字符,我缺少什么:
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
(包括 space)在我的正则表达式中?我认为这与我的转义方式有关,但关于 SWIFT 的正则表达式,我无法在任何地方找到这些字符的任何内容。
问题是字符 [
、\
和 ]
需要转义,因为它们在正则表达式中具有特殊含义。
所以正则表达式中需要\[
、\
和\]
。但是由于这是在 Swift 字符串中,因此每个 \
都需要使用 \
.
进行转义
因此 [\]
在正则表达式中变为 \[\\]
,在 Swift 字符串中变为 \[\\\]
。
最终的有效字符串是:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~].{8,}$"
我正在尝试使用这个字符串:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~].{8,}$"
作为我的正则表达式模式,但它一直失败说模式无效。我使用 \
字符对字符进行转义:"
和 \
,但它会抛出错误:invalid escape sequence in literal
对于 ^ & [ ] | .
等正则表达式键字符。
为了允许字符,我缺少什么:
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
(包括 space)在我的正则表达式中?我认为这与我的转义方式有关,但关于 SWIFT 的正则表达式,我无法在任何地方找到这些字符的任何内容。
问题是字符 [
、\
和 ]
需要转义,因为它们在正则表达式中具有特殊含义。
所以正则表达式中需要\[
、\
和\]
。但是由于这是在 Swift 字符串中,因此每个 \
都需要使用 \
.
因此 [\]
在正则表达式中变为 \[\\]
,在 Swift 字符串中变为 \[\\\]
。
最终的有效字符串是:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~].{8,}$"