当前位置: 首页 > 面试题库 >

如何使用正则表达式匹配任何重复的字符?

潘向明
2023-03-14
问题内容

我需要匹配重复两次的任何字符,例如:

"abccdeff"

应匹配“ cc”和“ ff”。在任何其他正则表达式语法中,让我们使用Javascript作为快速示例,我可以这样做:

var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))

哪个返回

[ 'cc', 'ff' ]

但是Go的regexp似乎不允许这样做。可以在Go中执行此操作吗?


问题答案:

由于re2不支持向后引用,因此您需要:

  • 要么使用另一个正则表达式库(如glenn-brown/golang-pkg-pcre
  • 或编写一个无需进行正则表达式分析的循环


 类似资料:
  • 问题内容: 我正在尝试创建一个匹配字符串的正则表达式,如果它连续有3个或多个重复字符(例如aaaaaa,testtttttt,otttttter)。 我尝试了以下方法: 连续 匹配 任意 3个字符,但不 连续的 字符…我在哪里出错? 问题答案: 您要的内容无法使用 真正的 正则表达式完成,您需要的是(不规则的)反向引用。尽管许多正则表达式引擎实现了它们,但Go使用的RE2却没有。RE2是一种快速的

  • 问题内容: 假设我有琴弦 如果我只有一场比赛,。我为什么不明白? 问题答案: 您不能仅使用正则表达式来做到这一点,但是可以非常接近: 换句话说,您捕获了前行中的所有三个数字,然后返回并以常规方式匹配一个字符,只是为了提高匹配位置。你怎么消费这个角色都没有关系。效果一样好。而且,如果您真的很喜欢冒险,可以只使用前瞻功能,并让JavaScript处理凹凸不平的问题。 此代码改编自此答案。我本来会将此问

  • 我试图返回在单个文本上使用regex得到的匹配数。我需要正则表达式是全局的,不区分大小写,这样它就可以满足我的需要。 我真正需要的是: 给定此regex字符串regex=“one[^w]*million”(全局和不区分大小写) 实际上,我所做的只是一个简单的检查,如果至少有一个字符与序列匹配,则返回true或false,而不是实际的匹配数。 我的代码:

  • 如何在不包含连续子字符串baa的字母表{a,b,c}上表达正则表达式?

  • 问题内容: 原始数据是: 我想匹配一条线,但是不能使用 但是,我可以使用match 。 我该如何搭配 问题答案: 默认情况下,和分别匹配输入的开始和结束。您需要使用启用多行模式,这会导致并匹配行的开始和结束: 演示: 产生以下输出: 编辑我 没有任何匹配的事实是因为默认情况下,和不匹配。如果您通过启用了DOT-ALL ,也使匹配了它们,那么您将看到整个输入字符串都被匹配了: 编辑二 在这种情况下,

  • 正则表达式如何匹配出这个字符串'calc(100vh - 420px)'中的数字420