gpt4 book ai didi

c# - 如何查找重复字符

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:47 27 4
gpt4 key购买 nike

我无法理解如何解决以下问题:

我有输入字符串“aaaabaa”,我正在尝试搜索字符串“aa”(我正在寻找字符的位置)预期结果是0 1 2 5

  • aa aaba
  • 一个aa abaa
  • aa aa
  • aaaab aa

我已经使用另一种方法(非正则表达式)解决了这个问题。但是我需要一个 RegEx 我是 RegEx 的新手所以谷歌搜索真的帮不了我。任何帮助表示赞赏!谢谢!

附言我尝试使用 (aa)*"\b(\w+(aa))*\w+" 但这些表达式是错误的

最佳答案

你可以通过使用前瞻来解决这个问题

a(?=a)

将找到每个“a”后跟另一个“a”。

如果你想更普遍地这样做

(\p{L})(?=\1)

这将找到后跟相同字符的每个字符。每个找到的字母都存储在一个捕获组中(因为周围有括号),这 capturing group然后被 positive lookahead assertion 重用((?=...))通过使用 \1(在 \1 中存储了匹配字符)

\p{L} 是类别为“字母”的 unicode 代码点

代码

String text = "aaaabaa";
Regex reg = new Regex(@"(\p{L})(?=\1)");

MatchCollection result = reg.Matches(text);

foreach (Match item in result) {
Console.WriteLine(item.Index);
}

输出

0
1
2
5

关于c# - 如何查找重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com