问题:
使用regex,是否可以在不同位置匹配包含相同字符的单词?
条件:
所有的单词都有相同的长度,你知道重复字符的字符位置(例如1,2和4),但你不知道它是什么。
示例:
使用小写的6个字符的单词,我想匹配第3个和第4个字符相同的单词。
parrot <- match for double r
follia <- match for double l
carrot <- match for double r
mattia <- match for double t
rettoo <- match for double t
melone <- doesn't match
我不能使用量词[\d]{2},因为它匹配两个字符的任何序列,如果我说第2和第4个位置而不是第3和第4个位置呢?
有没有可能用regex做我想做的事?如果是,我该怎么做?
编辑:
在评论中询问,我使用的是python
您可以使用反向引用来执行此操作:
这将匹配任何字符的连续出现。
编辑下面是一些Python示例:
/(\b\w*?(\w)\2.*?\b)/
将在字符重复上至少匹配任何单词 一美元就是这个词 第一次重复2美元。
在这种情况下,您需要使用back引用。我不确定您使用的是哪种语言,我在VI编辑器中尝试了以下示例来搜索任何重复的字母表。 模式正则表达式:
\([a-z]\)\1
如果您看到这个例子,[a-z]是您正在搜索的模式,并将其包含在paranthesis中(paranthesis应该在某些语言中转义)。一旦您有了paranthesis,它就是一个组,可以在regex中的任何地方使用\1再次引用它。如果有多个组,您可以使用\1、\2 etc.\1将被第一个组中匹配的内容替换。
谢谢 阿文
相关问题 更多 >
编程相关推荐