使用正则表达式搜索文本中的UUID
时间:2020-03-06 14:45:13 来源:igfitidea点击:
我正在使用正则表达式在文本块中搜索UUID。目前,我所依据的假设是,所有UUID都将遵循8-4-4-4-12十六进制数字的样式。
谁能想到一个用例,这个假设将是无效的,并且会导致我错过一些UUID?
解决方案
根据定义,UUID是32个十六进制数字,如前所述,由5个组用连字符分隔。我们不应该错过任何正则表达式。
http://en.wikipedia.org/wiki/Uuid#定义
我同意,根据定义,正则表达式不会丢失任何UUID。但是,可能需要注意的是,如果要特别搜索Microsoft的全球唯一标识符(GUID),则GUID有五个等效的字符串表示形式:
"ca761232ed4211cebacd00aa0057b223" "CA761232-ED42-11CE-BACD-00AA0057B223" "{CA761232-ED42-11CE-BACD-00AA0057B223}" "(CA761232-ED42-11CE-BACD-00AA0057B223)" "{0xCA761232, 0xED42, 0x11CE, {0xBA, 0xCD, 0x00, 0xAA, 0x00, 0x57, 0xB2, 0x23}}"
在大多数情况下,`[\ w] {8}(-[\ w] {4}){3}-[\ w] {12}都对我有用。
或者,如果我们想成为特定的[\ w] {8}-[\ w] {4}-[\ w] {4}-[\ w] {4}-[\ w] {12}
。