【发布时间】:2021-08-11 09:49:13
【问题描述】:
HTML:
<body>
<textarea readonly id="txtImagename1" name="txtImagename1" rows="1000" cols="200">
testing
second line
</textarea>
</body>
</html>
如何通过c#代码获取textarea中的文本?
(测试\n第二行)
【问题讨论】:
HTML:
<body>
<textarea readonly id="txtImagename1" name="txtImagename1" rows="1000" cols="200">
testing
second line
</textarea>
</body>
</html>
如何通过c#代码获取textarea中的文本?
(测试\n第二行)
【问题讨论】:
您应该使用专用的 HTML 解析器。
但是,如果这是一个简单粗暴的要求,您可以使用带有捕获组的正则表达式,如下所示:
var html = <your HTML for parsing>;
var pattern = @"<textarea.*>([.\s\S]*)</textarea>";
var matches = Regex.Matches(html, pattern);
if (matches.Count > 0 && matches[0].Groups.Count > 1)
...
然后您可以使用以下内容提取捕获的组(正则表达式中圆括号中的部分):
var text = match.Groups[1].Captures[1];
更多详情请见this answer。
这很脆弱,我不建议将其用于重用或生产代码。
【讨论】:
html 这是您在问题中发布的完整文本块 (HTML)。如果源 HTML 包含多个 textarea 元素,那么这将更加棘手(在这种情况下,您确实应该使用 HTML 解析器)。