挣扎着正则表达

时间:2013-07-09 13:30:21

标签: regex

我很难找到可用于对与某种模式匹配的数据进行分类的正则表达式:

以下是一些例子:

pli:06e9b616-5712-d0e9-1bc2-000012e61393
pli:6fdd187d-cbdc-3028-4a8d-000020f3449a
pli:0472def9-ccf3-e4e9-ca05-00005fecf9f8

正如您所看到的,每个字符串都以pli开头:即使字符不同,它们也都具有相同的模式。每组字符在同一位置用“ - ”分隔。

2 个答案:

答案 0 :(得分:3)

看起来它的格式为pli:UUID,其中UUID是通用唯一标识符。试试这个:

pli:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}

我也允许使用大写字母。

请参阅http://en.wikipedia.org/wiki/Universally_unique_identifier

答案 1 :(得分:2)

这就像我能想到的那样简短:

pli:(?i)[\da-f]{8}-([\da-f]{4}-){3}[\da-f]{12}

(?i)表示“忽略大小写”(保存必须在任何地方输入a-zA-Z),我通过识别中间的3组4位数来缩写正则表达式

查看live demo on rubular