C# 用于从<;的开始/结束处删除非字母数字字符的正则表达式;td>;

C# 用于从<;的开始/结束处删除非字母数字字符的正则表达式;td>;,c#,regex,C#,Regex,我正在使用.NET/C#,我想创建以下正则表达式。我想从内部字符串的开头/结尾删除非字母数字字符。它不会影响中间数据(字母数字区域内的数据)。仅显示字母数字字符前后的数据,如下所示: 例如: Input: <td>;[Bob Smith:</td><h1>.#</h1> <td> Mary L. Jane ? </td> <td>- + Mike T+ Rodgers + </td>

我正在使用.NET/C#,我想创建以下正则表达式。我想从内部字符串的开头/结尾删除非字母数字字符。它不会影响中间数据(字母数字区域内的数据)。仅显示字母数字字符前后的数据,如下所示:

例如:

Input:
<td>;[Bob Smith:</td><h1>.#</h1>
<td>    Mary L. Jane    ?    </td>
<td>- + Mike T+ Rodgers + </td>
<td>@#1236^&</td>
<td>  -54-321A-</td>

Output:
<td>Bob Smith</td><h1>.#</h1>
<td>Mary L. Jane</td>
<td>Mike T+ Rodgers</td>
<td>1236</td>
<td>54-321A</td>
string str = @"<td>;[Bob Smith:</td><h1>.#</h1>
<td>    Mary L. Jane    ?    </td>
<td>- + Mike T+ Rodgers + </td>
<td>@#1236^&</td>
<td>  -54-321A-</td>";
string replaced = Regex.Replace(
    str,
    @"(?<=<td>)[^\da-zA-Z<]+|[^\da-zA-Z>]+(?=</td>)",
    "");
Console.WriteLine(replaced);
输入:
;[鲍勃·史密斯:#
玛丽·L·简?
-+Mike T+Rodgers+
@#1236^&
-54-321A-
输出:
鲍勃·史密斯#
玛丽·L·简
迈克·T·罗杰斯
1236
54-321A

感谢您使用
@(?最好看一看
HTMLAgilityPack
之类的东西,它有很多功能可以帮助您。falsetru,做得很好,但请检查此输入:“@user3062349,使用
@”(?falsetru,谢谢您的帮助。做得很好。不确定是否“更新1”以上都可以做到。如果在所有td上都做了,我似乎删除了太多内容。@user3062349,请发布另一个问题。falsetru,我已经按照要求做了,并删除了此问题的评论。以下是新问题: