Это похоже на тот же вопрос в c # . Вот регулярное выражение, которое вам понадобится ...
^ [A-Fa-f0-9] {32} $ | ^ ({|? () [A-Fa-f0-9] {8} - ([A-Fa-f0-9] {4 } -) {3} [A-Fa-f0-9] {12} (} |))? $ | ^ ({)? [0xA-Fa-f0-9] {3,10} (, {0, 1} [0xA-Fa-f0-9] {3,6}) {2}, {0,1} ({) ([0xA-Fa-f0-9] {3,4}, {0,1} ) {7} [0xA-Fa-f0-9] {3,4} (}}) $
Но это только для начала. Вам также необходимо убедиться, что различные части, такие как дата / время, находятся в допустимых пределах. Чтобы понять, насколько сложно проверить действительный идентификатор GUID, посмотрите исходный код одного из конструкторов Guid.