我想匹配字符串,如AhKs
& AdKs
(即兩張卡Ah = Heart of Ace)。我想用正則表達式匹配兩個off-suit卡片,我現在擁有的是"^[AKQJT2-9][hscd]{2}$"
,但這可能匹配諸如AhKh
(合適)和AhAh
之類的手。有沒有一種方法可能要使用反向引用說第二[hscd]
不能一樣正則表達式檢查範圍內的字符不重複
3
A
回答
4
試試這個正則表達式的冷杉(同樣爲[AKQJT2-9]
):
^[AKQJT2-9]([hscd])[AKQJT2-9](?!\1)[hscd]$
這裏,negative look-ahead assertion (?!…)
用來禁止第四字符與第二個(第一個分組的匹配)相同。
但如果正則表達式實現不支持環視斷言,您可能需要將其擴展成:
^[AKQJT2-9](h[AKQJT2-9][scd]|s[AKQJT2-9][hcd]|c[AKQJT2-9][hsd]|d[AKQJT2-9][hsc])$
5
不完全優雅,但工作原理:
^[AKQJT2-9]([hscd])[AKQJT2-9](?!\1)[hscd]$
+0
+1這實際上非常優雅。我的版本將會更加醜陋。 :) – cletus 2010-03-21 13:57:20
+0
擊敗我1秒! )))) – user187291 2010-03-21 13:57:48
1
一負面望向來拯救
/^[AKQJT2-9]([hscd])[AKQJT2-9](?!\1)[hscd]$/
:(太遲了
1
是的。使用反向參考和負面預測。
^([AKQJT2-9])([hscd])(?!\1)(?!.\2)[AKQJT2-9][hscd]$
相關問題
- 1. Ruby中非ASCII字符範圍檢查的正則表達式
- 2. 正則表達式和C#檢查範圍內的數字+字符(可選)
- 3. 取反正則表達式中的字符範圍內的字符範圍
- 4. 用於檢測字符串內重複的正則表達式
- 5. 用於檢查重複空格字符的正則表達式
- 6. 正則表達式驗證帶有重複的字母範圍
- 7. 重複字符的正則表達式
- 8. 正則表達式正則表達式 - 字符範圍,字邊界,斷言
- 9. Excel VBA正則表達式檢查重複字符串
- 10. 數字範圍的正則表達式
- 11. 正則表達式的數字範圍
- 12. 使用正則表達式檢查數字範圍
- 13. 使用正則表達式檢查字符串中的數字範圍?
- 14. 正則表達式重複字符數
- 15. PHP正則表達式重複字符
- 16. Php正則表達式重複字符
- 17. 非重複字符正則表達式
- 18. 正則表達式find()不正確;檢測字符串中的重複字符
- 19. Java正則表達式找到第一個字符不在字符範圍內
- 20. 正則表達式:數字範圍
- 21. 正則表達式數字範圍
- 22. 正則表達式數字範圍prasing
- 23. 正則表達式,檢查特定長度範圍內的數字。 C#/ ASP.NET
- 24. 字符串加數字範圍的正則表達式
- 25. 從數字到特定字符的正則表達式範圍
- 26. 數字範圍和字符的正則表達式
- 27. 正則表達式來檢測speficif字符的重複
- 28. 正則表達式檢測任何重複的字符,但有
- 29. 檢查數值範圍的正則表達式
- 30. 正則表達式檢查循環中的[a-z]範圍
擊敗我6秒! :D – 2010-03-21 13:55:34