正则表达式从开头/结尾删除非字母数字字符

时间:2013-12-27 13:33:31

标签: c# regex

我正在使用.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>

先谢谢

1 个答案:

答案 0 :(得分:1)

使用@"(?<=<td>)[^\da-zA-Z<]+|[^\da-zA-Z>]+(?=</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);