使用Regex匹配特定长度的字母数字字符串和带有连字符的字符串

本文关键字:字符串 Regex 数字字符 数字 连字符 使用 | 更新日期: 2023-09-27 18:14:22

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

下面是一个示例字符串:

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

这是我为字母数字所做的,但它匹配URL中具有该长度的任何字母数字:

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

我累了,但我不希望反斜杠,也不保证在最后会有一个斜杠。所以我更接近于这个:

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

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

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

我应该只得到一个匹配er5465dF3的字母数字正则表达式,长度为9。

我应该只返回The-Post-Is-Here与连字符regex。

使用Regex匹配特定长度的字母数字字符串和带有连字符的字符串

只需在正则表达式中添加单词边界即可进行精确匹配。

'b[0-9a-zA-Z]{9}'b
输出:

er5465dF3

演示

要获得用连字符分隔的字符串,

'b[A-Za-z]+(?:-[A-Za-z]+)+'b
演示