使用正则表达式匹配特定长度的字母数字字符串和带连字符的字符串

时间:2014-07-23 20:15:03

标签: c# .net regex .net-4.5

我正在解析一个网址,需要帮助匹配特定长度的字母数字字符串和带连字符的字符串。

这是一个示例字符串:

http://www.theplace.com/er5465dF3/2288494033cbbbe3de861f60bdf6934c/zRklm2/The-Post-Is-Here

这就是我对字母数字的所有内容,但它匹配网址中任何长度与字母数字的字母数字:

[0-9a-zA-Z]{9}

我厌倦了这一点,但我不想要斜线,也不保证最后会有斜线。所以我对此更加接近:

\/[0-9a-zA-Z]{9}\/

我用连字符正则表达式尝试了一些东西,但它们是我没有长度属性的变化。我很难过那个。同样,不能保证带连字符的字符串将位于末尾或斜杠之间。

这是我期望的每种类型的输出:

我应该只使用长度为9的字母数字正则表达回er5465dF3的一个匹配。

我应该只使用连字符正则表达式返回The-Post-Is-Here

1 个答案:

答案 0 :(得分:1)

只需在正则表达式中添加单词边界即可完全匹配。

\b[0-9a-zA-Z]{9}\b

输出:

er5465dF3

DEMO

获取超级分隔的字符串,

\b[A-Za-z]+(?:-[A-Za-z]+)+\b

DEMO