我有以下标签:
<a href="News_ViewStory.asp?NewsID=5215"> Some Text </a>
<a href="News_ViewStory.asp?NewsID=5216"> Some Text </a>
<a href="News_ViewStory.asp?NewsID=5217"> Some Text </a>
我想匹配Tag的开头'
<a href="News_ViewStory.asp?NewsID=5215">
<a href="News_ViewStory.asp?NewsID=5216">
<a href="News_ViewStory.asp?NewsID=5217">
变体部分是新的ID号。
感谢。我正在使用C#。
答案 0 :(得分:1)
我建议您尝试使用HTML解析器而不是使用regexp。除了最简单的情况之外,所有这些都会减少错误(由于HTML不规则,因此不适合正则表达式)。
答案 1 :(得分:0)
如果您有其他(不需要的)&lt; a&gt;,则您没有明确说明。标签,但要获得所有&lt; a&gt;开头,你可以试试像“&lt; a [^&gt;] *&gt;”这样的正则表达式。
答案 2 :(得分:0)
正则表达式不是这项工作的最佳工具,但您实际上可以使用正则表达式匹配此模式中的字符串:
<a href="News_ViewStory\.asp\?NewsID=\d{4}">
作为@
-quoted C# string literal,这是:
@"<a href=""News_ViewStory\.asp\?NewsID=\d{4}"">"
\d
是数字character class的简写。 {4}
是完全有限的repetition。因此,\d{4}
表示“正好4位数”。
如果您想允许不同的数字模式,您可以使用例如\d{2,6}
。这允许2到6位数之间的任何位置。您还可以使用\d+
允许至少一个数字,没有上限。
请注意,.
和?
在上面的模式中以反斜杠开头。那是因为它们是具有特殊含义的正则表达式元字符([点]匹配(几乎)任何字符,?
是optional repetition specifier。转义摆脱了这些特殊含义,它们成为字面时间和问题标记
这些模式中的字符串是否正好 HTML标记,您想要的是完全不同的问题。通常不建议使用正则表达式解析HTML。