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)
因此,正则表达式工作,它正确获取所有其他细节,但它只是没有得到颜色信息.
-与...不匹配\d.此外,如果您进行非贪婪匹配,则\d+仅捕获第一个数字,因为它满足正则表达式.将您的正则表达式更改(-?\d+)为匹配-数字开头的可选项和数字中的可选数字,最多(但不包括)数字后面的字符(换行符,字符串结尾,...) .
试试这个正则表达式,看它是否有效.
(.+?)\ r \n "个"([^ ""] +) "为"\r \n(\ d +),\ S(\ d +)\ r\N(\ W\S]*)\ r\N(\ d +\d +)\ r\N( - ?\ d +)
你的正则表达式似乎正在寻找"字体大小后的值.
此外,您的ARGB颜色将在组匹配7中,而不是5.
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |