我正在使用某个正则表达式来知道字符串中某个字符串值的位置:
正则表达式:C\[([A-Z][0-9])\]
字符串:=C[C3]+(C[C3]-C[C5])*(C[C3]-(C[C5]+C[C3]))
这会从该字符串中获取每个C[blabla]
值,当我要求组(1)时,我甚至不必在开头剪切“C[
”并且“{ {1}}“最后。
现在我想这样做但不是使用]
占位符,而是使用C[]
,而不是在该占位符中使用“G[]
”字符串,而是使用guid所以我得到了这些:
正则表达式:C3
字符串:G\[[{|\(]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[\)|}]?\]
当我检查正则表达式时,它完全匹配guid,但是当我使用的不仅仅是一个guid时(或者当我在之前或之后添加字符时),我没有得到任何匹配。我省略了“^ $”因此它不再定义开始和结束,但这似乎不是问题。
任何帮助都将不胜感激。
答案 0 :(得分:0)
由于您没有指定您正在使用的语言,我使用Java制作了解决方案:
String regex = "Guid\\[([0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})\\]";
String input = "=Guid[92716d13-01d1-447b-be3f-c090fed6336c]+Guid[92716d13-01d1-447b-be3f-c090fed6336c]";
Matcher m = Pattern.compile(regex).matcher(input);
while(m.find()) {
System.out.println(m.group(1));
}
打印:
92716d13-01d1-447b-be3f-c090fed6336c
92716d13-01d1-447b-be3f-c090fed6336c
答案 1 :(得分:0)
我试过你的网站。
我说:
Guid\[[{|\(]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[\)|}]?\]
作为正则表达式
并且:
Guid[92716d13-01d1-447b-be3f-c090fed6336c]+Guid[92716d13-01d1-447b-be3f-c090fed6336d]
输入1 中的。
我在群组[0]中得到2个结果:
Guid[92716d13-01d1-447b-be3f-c090fed6336c]
和
Guid[92716d13-01d1-447b-be3f-c090fed6336d]