我有类似于找到“匹配括号”的挑战,但我想这是一个更简单的挑战。 例如,像“xAAAyBBBz”这样的字符串应该匹配,因为有3个A和3个B。然而,“xAAyBBBz”不应该匹配,因为有一个“不匹配的”B.字符串具有任意长度,并且它应该是一个单一的正则表达式。我可以使用in-regexp评估(毕竟是Perl),我可以(应该!)完全避免使用正则表达式。但现在我很好奇。使用正则表达式匹配相同长度的子串
2
A
回答
1
^[^AB]*(A(?:[^AB]*|(?-1))B)[^AB]*\z
^
[^AB]* # "x"
(
A
(?:
[^AB]* # "y"
|
(?-1)
)
B
)
[^AB]* # "z"
\z
捕获组(A(?:[^AB]*|(?-1))B)
相匹配的A
在开始和一个B
末。在中间,可能有任何数量的非(A
或B
)字符,或者第一个捕获组的图案可能会在此位置递归匹配((?-1)
)。这保证了A
和B
均衡。
相关问题
- 1. 正则表达式匹配(相同长度)的AAB排列
- 2. 正则表达式匹配的长度
- 3. 子串长度的正则表达式
- 4. 匹配正则表达式的字符串的最小长度
- 5. 正则表达式匹配两个不同的长度相同的组
- 6. 匹配匹配字符串的正则表达式的子串
- 7. 拆分最长的正则表达式匹配子字符串
- 8. Python正则表达式匹配相同长度的匹配组,但匹配不同
- 9. perl正则表达式匹配字符串长度
- 10. 当开始和结束的长度相同时,匹配的正则表达式
- 11. 正则表达式相同的字符串匹配
- 12. 正则表达式:不匹配的子正则表达式
- 13. 使用正则表达式的Javascript正则表达式匹配
- 14. Java正则表达式最长匹配
- 15. 使用正则表达式的子串匹配
- 16. 查找使用匹配正则表达式的子串
- 17. 正则表达式正则表达式匹配字符串
- 18. 正则表达式匹配的句子
- 19. 正则表达式则表达式匹配的字符串
- 20. Postgres正则表达式子字符串或正则表达式匹配
- 21. FORX0003:tokenize()中的正则表达式不能是匹配零长度字符串的正则表达式
- 22. Javascript的正则表达式:如何找到匹配的长度?
- 23. 正则表达式匹配相对URL
- 24. 用正则表达式匹配一定长度的字符串中的数字
- 25. 正则表达式匹配跨度或?
- 26. 计算Swift中正则表达式的最小匹配长度
- 27. 正则表达式匹配数字的精确长度
- 28. 正则表达式来匹配一定长度的单词
- 29. 正则表达式匹配的长度和字母
- 30. 正则表达式 - 可变长度的匹配号码
如果x,y或z包含A或B会怎么样? – melpomene
您描述的模式与传统正则表达式不匹配,因为该模式不是常规语言(http://en.wikipedia.org/wiki/Regular_language)。但是,它可能通过扩展匹配。 –
我相信[先前提出的问题](http://stackoverflow.com/questions/7434272/match-an-bn-cn-e-g-aaabbbccc-using-regular-expressions-pcre)回答你的问题。 :) –