[英]Swift Regex with special Characters
我正在嘗試使用以下字符串:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~].{8,}$"
作為我的正則表達式模式,但它始終失敗說該模式無效。 我使用\\
字符對字符"
和\\
進行轉義,但是會引發錯誤:對於^ & [ ] | .
等正則表達式鍵字符invalid escape sequence in literal
^ & [ ] | .
為了允許這些字符,我缺少什么:
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
(包括空格)在我的正則表達式中? 我認為這與我的轉義方式有關,但是就SWIFT的正則表達式而言,這些字符在任何地方都找不到。
問題在於字符[
, \\
和]
必須轉義,因為它們在正則表達式中具有特殊含義。
因此,您需要在正則表達式中使用\\[
, \\\\
和\\]
。 但是由於這是在Swift字符串中,因此每個\\
必須用\\
進行轉義。
所以[\\]
變為\\[\\\\\\]
在正則表達式成為\\\\[\\\\\\\\\\\\]
在夫特字符串。
最后的有效字符串是:
var passwordRegex = "^[A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~].{8,}$"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.