首页 > 解决方案 > 需要匹配具有两个相同字符的字符串

问题描述

正则表达式的完整新手,我需要一个正则表达式,它匹配以相同字符开头和结尾的字符串,中间可以是任何东西(偶数)

我已经尝试了一些东西,但我无法让它与以下文本案例相匹配:

5 (true)
a (true)
b (true)
ab  (false)
aba (true)

"(\"|\')whatever\\1"是我到目前为止所拥有的,但它不适用于所有字符串

标签: regex

解决方案


利用:

^.$|^(.).*\1$

1 个字符的字符串的大小写会被特殊处理,因为您不能在一个模式中将同一个字符匹配两次。第二种选择将第一个字符放在捕获组中,然后在最后将其与反向引用匹配。

演示

处理 1 字符大小写的另一种方法是将第一个字符之后的所有内容设为可选。

^(.)(?:.*\1)?$

推荐阅读