我正在寻找正则表达式的帮助。我有以下UNC路径\\server\share1\folder1
,我想从中获取server
。服务器名称将始终不同,有时也是IP地址。要求在反斜杠之间匹配
我有以下表达式,我一直在努力,但我似乎无法让它按我想要的方式工作。
\\?.*\\
这将返回以下结果\\server\share\
。有人可以帮我抓住server
而不是\\server\
?
我正在寻找正则表达式的帮助。我有以下UNC路径\\server\share1\folder1
,我想从中获取server
。服务器名称将始终不同,有时也是IP地址。要求在反斜杠之间匹配
我有以下表达式,我一直在努力,但我似乎无法让它按我想要的方式工作。
\\?.*\\
这将返回以下结果\\server\share\
。有人可以帮我抓住server
而不是\\server\
?
您可以使用此:
^\\\\.*?\\
^
是线锚的开始,只会在开始匹配。
.*?
是.*
的修改版本,因此它将匹配它跟随的模式匹配;通常被称为“尽可能少”匹配,反对它的“贪婪”对手。
或者,你可以用一个否定类:
^\\\\[^\\]+\\
[^\\]+
除了反斜杠任何字符相匹配。
如果你想获得server
没有反斜杠,你应该能够使用捕获组(通过使用括号内),并提取匹配的组(通过$1
或\1
):
^\\\\(.*?)\\
或
^\\\\([^\\]+)\\
或者如果UNC发现任何默认的第一场比赛,那么你可以简单地使用[^\\]+
。
尝试做与string.split(或等值的您正在使用的语言)“\”,然后从结果数组得到“服务器”
感谢您的建议和帮助。我能够得到我想要的价值“[^ \\] +” – Mpit52
@ Mpit52哦,是的,这通常取决于您使用的函数,但如果UNC处理正则表达式的方式接受这个,酷! :) – Jerry
@Jerry:UNC路径以* 2 *反斜杠开始,但我们没有看到它们,因为OP没有使用代码格式。这意味着你的正则表达式的长形式应该是''^ \\\\([^ \\] +)\''。 –