我正在寻找有关正则表达式的帮助。我有以下UNC路径\\server\share1\folder1
,我想从中抓取server
。服务器名称将始终不同,有时是IP地址。
我有以下表达式,我一直在使用,但我似乎无法让它以我想要的方式工作。
\\?.*\\
这将返回以下结果\\server\share\
。有人可以帮助我抓住server
而不是\\server\
吗?
答案 0 :(得分:2)
您可以使用:
^\\\\.*?\\
^
是行锚点的开头,只会在开头匹配。
.*?
是.*
的修改版本,因此它将匹配其后的模式匹配;通常被称为“尽可能少地”匹配,与其“贪婪”的对手相对立。
或者,您可以使用否定的类:
^\\\\[^\\]+\\
[^\\]+
匹配除反斜杠之外的任何字符。
如果你想让server
没有反斜杠,你应该能够使用一个捕获组(通过使用括号)并提取匹配的组(通过$1
或\1
):
^\\\\(.*?)\\
或
^\\\\([^\\]+)\\
或者,如果UNC默认找到任何第一个匹配项,那么您只需使用[^\\]+
。
答案 1 :(得分:0)
尝试使用'\'执行string.split(或其使用的语言中的等效项),然后从结果数组中获取“server”
答案 2 :(得分:0)