我想找到包含重复两次相同字符串的字词。
(例如wookokss
(ok / ok),ccsssscc
(ss / ss))。
我认为表达式是\(\w*\)\0
。
另一种尝试是找到由组成的单词重复两次相同的字符串。我的回答是\<\(\w*\)\0\>
。 (单词开头+分组(单词)+组捕获+单词结尾)
但他们不起作用。有人能帮助我吗?
答案 0 :(得分:4)
要查找一个字符重复两次的字符串,该字符串超过两个字符,您可以使用
/\(\w\{2,}\)\1
要匹配包含前面提到的字符串的整个单词,您可以使用
/\<\w\{-}\(\w\{2,}\)\1\w\{-}\>
一点点解释
\1
- 匹配\(
中第一个子表达式匹配的相同字符串,\)
(\0
匹配整个匹配的模式)\{n,}
- 尽可能多地匹配前一个原子的n
\{-}
- 匹配前面原子的0或更多,尽可能少\w
- 字符([0-9A-Za-z_]
)\<
- 单词的开头\>
- 单词的结尾答案 1 :(得分:3)
1。)包含重复两次相同字符串的单词。 (例如wookokss(ok / ok),
要查找包含两个或更多重复字词的单词,请尝试
\(\w\{2,}\)\1
\1
匹配第一组中捕获的内容。
2。)找到重复两次相同字符串的单词...
捕捉\w\+
一个或多个单词字符,然后\1
在第一组中捕获的内容
\<\(\w\+\)\1\>
应该是关于它的。 Have a look at this tutorial
答案 2 :(得分:1)
对于第一个使用(.{2,})\1
示例:https://regex101.com/r/gK0mM2/2
假设您只查找具有多于1个字符的重复字符串。
以及第二个^(.{2,})\1$
示例:https://regex101.com/r/lC2yT7/2
编辑:更改了第二个表达式,现在它还查找至少包含2个字符的字符串