我正在尋找正則表達式的幫助。我有以下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沒有使用代碼格式。這意味着你的正則表達式的長形式應該是''^ \\\\([^ \\] +)\''。 –