簡體   English   中英

帶有特殊字符的Swift Regex

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM