c# - C# 替换和删除文本
问题描述
我对如何替换和删除标签中的文本有一点问题。
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: ???
谢谢你。
解决方案
尝试使用正则表达式:匹配组并以所需的方式表示它们:
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
推荐阅读
- r - 事件矩阵名称提取所有 TRUE
- http - HTTP 用户/密码抓取混乱
- python - 如何比较两个熊猫数据框并删除一个文件上的重复项而不附加其他文件中的数据
- r - 将 aa 字符列转换为具有多种格式的日期
- scala - 如何缩小列表但保证它不为空?
- maven - 无法使用 Maven Archetype 为 opendaylight 创建项目
- performance - 在 Ubuntu 16.04 上输入时 Android Studio 变得迟钝
- php - 在 laravel 中找不到类路径
- c# - 如何解决以下代码的错误?
- reactjs - 在 React Native 中重新获取和重新渲染组件