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