【发布时间】:2018-05-17 11:59:30
【问题描述】:
我想使用批处理从变量中提供的文本中分离出一个特定的字符串,但它似乎没有按预期工作。我可能做错了正则表达式,或者我误解了“findstr”的工作方式。
我需要隔离的特定字符串是一个 GUID(它具有字母数字字符的标准格式,以“-”分隔的字符组排列,如下所示:8-4-4-4-12)
@echo off
setlocal enabledelayedexpansion
SET str="This is a string that has a long uuid: (UUID: 359f975d-2649-4e20-b7c0-b452aaaca4b2)"
SET rx=[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}
FOR %%u IN ('FINDSTR /r "!rx!" "!str!"') DO ECHO %%u
endlocal
基本上,我需要将 GUID 存储在一个单独的变量中,以便以后使用。如果这可以通过不同的方式实现,我很高兴学习!
谢谢!
【问题讨论】:
标签: regex batch-file batch-processing findstr