簡體   English   中英

用雙引號或單引號引起來的正則表達式字符串

[英]regex string enclosed by double quote or single quotes

我得到這個正則表達式:

(\s|'|\")((?=.*[0-9])(?=.*[a-zA-Z]))([a-z0-9]{8})(\s|'|\")

搜索具有一個小寫字符和一位數字的長度為8的字符串。 字符串需要用空格,雙引號或雙引號引起來。

那些不能表達工作:這樣的事情會被接受: "1234567a' 。如果字符串的開頭是'它應該結束' ,與啟動時"應該通過結束"等。

我對正則表達式的能力不是很強,所以請問是否有更好的方法可以在不重復正則表達式3次的情況下對開始和結束執行相同的字符?

如果要在字符串的末尾與字符串的開頭匹配相同的字符,則在將字符捕獲到捕獲組中后,可以對它使用反向引用

此外,要確保您在字符串的開頭匹配,請在字符串的開頭添加^錨,在字符串的末尾添加$錨:

r'''^([\s'"])(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9]{8}\1$'''

正則表達式演示

([\\s'"])是ID為1的捕獲組,因此,末尾的\\1反向引用與第1組內存緩沖區中存儲的文本匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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