请教正则表达式遇到的问题

吾非大神 2012-03-23 03:31:55
字符串 "fooood".
使用正则表达式 f(?<name>o{2}) 匹配时
程序中写了
varName = textbox1.text;
xxx.groups[varName].value 可以获得值
xxx.groups[1].value 也可以获得值,但这个时候 将文本值赋值为 1,即 varName="1" 则不可获取到捕获的值

但是不指定 组名,也就是 f(o{2})时,将文本赋值为 1 却可以捕获到值。。

而 写成 f(?<name>(o{2})) ,不管文本是 1 还是 name 都是可以的。。

不知道为什么了。。
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子侠客 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chinajiyong 的回复:]
引用 3 楼 dalmeeme 的回复:

xxx.groups[varName].Value中的varName是字符串变量啊,相当于xxx.groups["1"].Value,因为没有名字为1的分组,当然获取不都啊。

他要的就是这个解释,因为根本都不存在"1"这个捕获组,xxx.groups[varName].Value这样写是有varName这个捕获组
[/Quote]

+1
吾非大神 2012-03-23
  • 打赏
  • 举报
回复
哦,有这么一说啊

我看的资料上面没有提及。。
bdmh 2012-03-23
  • 打赏
  • 举报
回复
不指定组名,系统会有默认值,你好好看看帮助
0,1,2都会有系统指定相同的name即 “0”,“1”,“2”
吾非大神 2012-03-23
  • 打赏
  • 举报
回复
没有指定 ?<name>
但是程序里 还是用了 xxx.groups[varName].value 如果这个 varName="1" 返回的是第一个子匹配捕获到的值
吾非大神 2012-03-23
  • 打赏
  • 举报
回复
但是不指定 组名,也就是 f(o{2})时,将文本赋值为 1 却可以捕获到值。。

而 写成 f(?<name>(o{2})) ,不管文本是 1 还是 name 都是可以的。。


主要是这两句啊。。
EnForGrass 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dalmeeme 的回复:]

xxx.groups[varName].Value中的varName是字符串变量啊,相当于xxx.groups["1"].Value,因为没有名字为1的分组,当然获取不都啊。
[/Quote]
他要的就是这个解释,因为根本都不存在"1"这个捕获组,xxx.groups[varName].Value这样写是有varName这个捕获组
porschev 2012-03-23
  • 打赏
  • 举报
回复

f(?<name>o{2})

--------------》

ma.Groups["name"].Value
ma.Groups[1].Value

这两种都能匹配oo

----------------------------

f(o{2})

----->

ma.Groups[1].Value

这种能匹配oo
dalmeeme 2012-03-23
  • 打赏
  • 举报
回复
xxx.groups[varName].Value中的varName是字符串变量啊,相当于xxx.groups["1"].Value,因为没有名字为1的分组,当然获取不都啊。
porschev 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 xl_0715 的回复:]
字符串 "fooood".
使用正则表达式 f(?<name>o{2}) 匹配时
程序中写了
varName = textbox1.text;
xxx.groups[varName].value 可以获得值
xxx.groups[1].value 也可以获得值,但这个时候 将文本值赋值为 1,即 varName="1" 则不可获取到捕获的值

但是不指定 组名,也就是 f(o{2})……
[/Quote]

是放索引。。。int类型的不是字符串
bdmh 2012-03-23
  • 打赏
  • 举报
回复
老大,你那个字符的“1”和数字的1是一回事吗,数字是下标,“1”是名字,你哪有名字为1的组啊

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧