我是初学者,并且在regexp方面遇到了一些问题。
输入文字是:idUser = 123654; nick =“汤姆”的东西
我需要提取idUser的值 - > 123456
我试试这个:
//idUser is already 8 digits number
MatchCollection matchsID = Regex.Matches(pk.html, @"\bidUser=(\w{8})\b");
Text = matchsID[1].Value;
但是在输出上我得到idUser = 123654,我只需要数字
第二个问题是nick =“Tom”,我怎样才能从这个表达中获得文本Tom。
答案 0 :(得分:1)
您不会显示输出代码,从匹配集合中获取该组。
提示:如果你想只有括号中的内容,你将需要第1组,而不是第0组。
答案 1 :(得分:0)
.*?idUser=([0-9]+).*?
正则表达式适合你:o)
答案 2 :(得分:0)
这是一个应该有效的模式:
\bidUser=(\d{3,8})\b|\bnick="(\w+)"
给定输入字符串:
something idUser=123654; nick="Tom" something
这会产生2个匹配(as seen on rubular.com):
User=123654
,第一场比赛是123654
nick="Tom"
,第二场比赛为Tom
一些变化:
nick
后总是显示idUser
,则可以一次匹配这两个,而不是使用上述替换。{3,8}
重复来展示如何匹配至少3位,最多8位数。Match.Groups
property
答案 3 :(得分:0)