谁能帮我解释一下这个正则表达式的意义: @"#\?(?'property'\S+?)\?#",多谢啦,就要解释每个符号的作用?
解决方案 »
- 关于c#监控打印机的问题(论坛中没有打印机版块,暂时发这里了)
- 有用过iTextSharp控件转pdf的朋友吗
- 正则表达试基础知识 自己的资料找来给大家看看的,不好的别骂我。。供大家参考
- 经典算法-C#四种排序算法
- DataGrid的HyperLinkColumn字段问题?
- 关于TEXTBOX的验证数字输入
- 想重构一个基于DNN系统,因为并发用户量通常会在200-1000左右,如何解决性能问题
- webBrowser控件如何模拟点击事件
- 使用线程打开窗口后,窗口一闪就消失了
- 关闭窗体事件???
- 急!急!急!在线编辑器fckeditor上传图片时怎么修改绝对路径为虚拟路径径呢,现在问题是后台上传图片的路径是上级目录,而前台取图片的是同级目录,怎么改绝对路径为虚拟路径呢!
- 我该怎么学习C#?
符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:
string x="D:\\My Huang\\My Doc";
string y = @"D:\My Huang\My Doc";
事实上,如果按如下声明,C#将会报错,因为“\”在C#中用于实现转义,如“\n”换行:
string x = "D:\My Huang\My Doc";"
# -- 匹配一个#号
\? -- 匹配一个问号
(?'property'\S+?) --正则表达式引擎会记忆“()”中匹配到的内容,作为一个“组”,该组命名为'property'
\S匹配非空白字符,+?表示重复1次或更多次,但尽可能少重复。
\? -- 匹配一个问号
## -- 匹配一个#号
"用于匹配如:
Console.WriteLine(regex.IsMatch("#?abc#")); // false
Console.WriteLine(regex.IsMatch("#?abc"));// false
Console.WriteLine(regex.IsMatch("?abc#"));// false
Console.WriteLine(regex.IsMatch("#?abc?#"));// true
Console.WriteLine(regex.IsMatch("#?c?#"));// true
如 "#?HelloWorld?#"
但是不匹配 "#?Hello World?#" 因为中间有空格 空格不属于\S这种情况 "#?Hello?#World?#" 正则会匹配 "#?Hello?#"
因为 \S+? 构成的正则是懒惰的 也就是和一楼所说的尽可能少匹配