我在替换和删除标签上的文字方面遇到了一些问题。
label1.Text = Users online: 1 browsing: 1 pages
我正在使用gethtmldocument接收label1.Text
,就像上面一样。我的问题是我希望文本仅显示Users Online: (number)
。
现在我正在使用label1.Text.Remove(17)
。所以我会得到Users online: 1
,但是问题是,当用户超出限制时,10
的文字将再次计入1
而不是10
。
我正在尝试使用label1.Text.replace("browsing: 1 pages","")
。但是,当用户在线时,browsing: 1 pages
将更改为browsing: 2 pages
或其他。
所以我的问题是我怎么只能收到Users online: ???
谢谢。
答案 0 :(得分:1)
尝试使用正则表达式:匹配组并以所需方式表示它们:
using System.Text.RegularExpressions;
...
string source = "Users online: 479 browsing: 153 pages";
// match.Groups["text"] - "Users online: "
// match.Groups["number"] - "479"
var match = Regex.Match(source, "^(?<text>.*?)(?<number>[0-9]+)");
// Users online: (479)
label1.Text = $"{match.Groups["text"].Value.Trim()} ({match.Groups["number"].Value})";
编辑:正则表达式的模式^(?<text>.*?)(?<number>[0-9]+)
解释:
^ - anchor: string's beginning
(?<text> ...) - group named "text" which contains
.*? - any characters, as few as possible
(?<number> ...) - group named "number" which contains
[0-9]+ - digits (char in [0..9] range); "+" - at least one
答案 1 :(得分:0)
您可以尝试使用子字符串。像这样:
var x = //get the text
var textToDisplay = x.Substring(0, x.IndexOf("b");
Label1.Text = textToDisplay;