c# - C# 错误无法将 sytem.text.regularexpressions.match 转换为字符串
问题描述
以下代码块从 HTML 页面捕获文本,但在以下行出现编译错误:
St = Regex.Match(St, @"(?i)(?<= |^)order(?= |$) (?i)(?<= |^)Term (?i)(?<= |^)oF [0-9]* (?i)(?<= |^)years (?<= |^)or (?<= |^)Longer");
代码块:
if (textordernode.InnerHtml.Contains("Order Term"))
{
String St = textordernode.InnerHtml;
St = St.Replace(@"\r", "");
St = St.Replace(@"\n", "");
St = Regex.Replace(St, @"<[^>]+>| ", " ").Trim();
St = Regex.Match(St, @"(?i)(?<= |^)order(?= |$) (?i)(?<= |^)Term (?i)(?<= |^)oF [0-9]* (?i)(?<= |^)years (?<= |^)or (?<= |^)Longer");
int pFrom = St.IndexOf("Order Term of ") + "Order Term of ".Length;
int pTo = St.LastIndexOf("or longer");
try
{
textorderterm = St.Substring(pFrom, pTo - pFrom) + "or longer";
break;
}
catch (Exception ex)
{
textorderterm = "";
Console.WriteLine(ex.Message);
}
}
请问我能得到一些帮助吗?
解决方案
Regex.Match
返回一个Match
对象;您需要调用.Value
返回的Match
对象以获取匹配的子字符串。
例如:
St = Regex.Match(St, @"(?i)(?<= |^)order(?= |$) (?i)(?<= |^)Term (?i)(?<= |^)oF [0-9]* (?i)(?<= |^)years (?<= |^)or (?<= |^)Longer").Value;
推荐阅读
- crystal-reports - Crystal Reports:连接到 SQL 服务器时出错
- java - 当 Docker 容器中的 Java MVC 应用程序尝试连接到另一个容器中的 MySQL 时,表不存在错误
- html - Jekyll:动态 CSS 类的 Liquid 自定义输出语句
- javascript - 在间隔上调用的函数访问全局变量
- scala - Scala Spark - 覆盖镶木地板文件未能删除文件或目录
- opengl - 从 QCoreApplication::processEvents 调用 QWidget::paintEngine
- mongodb-query - MongoDB 聚合以填充不在结果中的数组
- google-cloud-platform - 如何测量我的主键的插入性能?
- c# - 如何使用 c# 从 pinpad 读取输入数据
- css - 右上角项目文本css