正则表达式获取具有特殊字符的字符串中的子字符串

时间:2015-02-20 12:06:13

标签: javascript jquery

我需要从以下字符串中提取:d101461b-a280-431c-b2bf-a3b200c6e575

  

https://training.shop4support.com/Resources/FileStorage/Products\\d101461b-a280-431c-b2bf-a3b200c6e575/St Stephen \ u0027s Neighborhood

我试过了:

var formattedGuid = guid.match('\\(.*)/').pop();

但由于'/'等特殊字符,我收到了意外的令牌错误。

1 个答案:

答案 0 :(得分:1)

尝试匹配GUID:

guid.match(/[0-9a-f]{8}(?:-[0-9a-f]{4}){4}[0-9a-f]{8}/)

所以我缩短了以下正则表达式以匹配5组十六进制数字(一组可以与[0-9a-f]{length}匹配):

[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}

在初始表达式中,我们可以看到一些模式,这些模式也可以分组,所以现在可以描述如下:

  

[0-9a-f]{8} - 一组八个数字

     

(?:-[0-9a-f]{4}){4} - 四组连字符和四个数字(?:不保存匹配项)

     

[0-9a-f]{8} - 一组八个数字