c# - 如何使用正则表达式查找 RGB 中两个连续的重复字符?

标签 c# regex

我正在尝试查找所有具有 2x3 连续数字的 RGB 数字。我的意思是这样的数字:

\#00FF11
\#66AA44
\#FF0000

我尝试过这样写:

\b#(([0-9a-zA-Z])\1){3}\b

但这不起作用。

问题出在哪里?我可能会说,问题出在 \1 周围,因为这是我唯一不太确定的部分。

最佳答案

\1 模式是对捕获组 1 的反向引用,即 (([0-9a-zA-Z])\1)。您实际上想要引用捕获组 2,因此需要 \2 而不是 \1

请注意,\b# 仅匹配前面带有单词字符(字母、数字或 _)的 #。您需要在开头使用非单词边界,\B

要匹配十六进制字符,[A-Fa-f][A-Za-z] 更好。

使用

@"\B#(?:([0-9a-fA-F])\1){3}\b"

使用逐字字符串文字,您不需要在此处使用双转义反斜杠。

关于c# - 如何使用正则表达式查找 RGB 中两个连续的重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203601/

相关文章:

regex - 如何在 Linux 命令行中 grep 以双正斜杠开头的行?

javascript - 如何使用正则表达式替换字符串中的所有 * 字符

c# - 是否可以将用户过去的对话历史插入/注入(inject)到聊天窗口对话框中?

c# - 将数据库对象从数据库拉入列表的最简洁方法是什么?

c# - 当我试图将用户控件居中时,为什么 Windows 窗体会自动调整高度?(C#)

c# - 如何向我的 C# Web 应用程序添加文件上传按钮?

JavaScript 名称正则表达式

c# - 连通分量标记算法优化

java正则表达式直到某些单词/文本/字符

php - 用于描述表单输入的正则表达式