用于匹配ARGB颜色的正则表达式(-44830298)

jay*_*t55 0 c# regex int colors argb

我正在尝试获取我存储在文本文件中的颜色信息,然后使用该颜色作为标签的前景色.但是,在运行时,当我单击按钮来执行此操作时,它不会给我任何错误消息或任何东西.我的代码如下:

MatchCollection lines = Regex.Matches(File.ReadAllText(Path), @"(.+?)\r\n""([^""]+)""\r\n(\d+),\s(\d+)\r\n([\w\s]*)\r\n(\d+\.\d+)""\r\n(\d+?)");
        foreach (Match match in lines)
            int color = Int32.Parse(match.Groups[5].Value);
Run Code Online (Sandbox Code Playgroud)

我也有其他信息inn文件的其他正则表达式,但其他正则表达式不是问题.问题是我刚刚添加的正则表达式尝试匹配颜色(argb).它在字符串的末尾:

\r\n(\d+?)
Run Code Online (Sandbox Code Playgroud)

所以据我所知,上面的小正则表达式意味着:"找到一个回车和换行符,然后是一个或多个数字,但不要贪心".是对的吗?

有人可以帮我这个.非常感谢你.

注意:文本文件中保存的颜色信息为负数(ARGB颜色):

-16744193
Run Code Online (Sandbox Code Playgroud)

文件内容如下:

Control
Control Text
Control Location
Control Font Name
Control Font Size
Control Font Color
Run Code Online (Sandbox Code Playgroud)

说明:

Label
"this is a label"
23, 77
Tahoma
14.0
-55794414
Run Code Online (Sandbox Code Playgroud)

因此,正则表达式工作,它正确获取所有其他细节,但它只是没有得到颜色信息.

Wim*_*Wim 7

-与...不匹配\d.此外,如果您进行非贪婪匹配,则\d+仅捕获第一个数字,因为它满足正则表达式.将您的正则表达式更改(-?\d+)为匹配-数字开头的可选项和数字中的可选数字,最多(但不包括)数字后面的字符(换行符,字符串结尾,...) .


WDu*_*ffy 6

试试这个正则表达式,看它是否有效.

(.+?)\ r \n "个"([^ ""] +) "为"\r \n(\ d +),\ S(\ d +)\ r\N(\ W\S]*)\ r\N(\ d +\d +)\ r\N( - ?\ d +)

你的正则表达式似乎正在寻找"字体大小后的值.

此外,您的ARGB颜色将在组匹配7中,而不是5.