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