2013-10-13 56 views
0

對不起,這樣一個愚蠢的問題!我之前使用過正則表達式,但由於某種原因,我在這個問題上遇到了麻煩。匹配只是第一個斜線或wutever在一個字符串:正則表達式:匹配url中的第一個斜槓 - 多數民衆贊成它! ?由於某種原因不工作?

www.blabla.com/hello/apple/apple/banana/ 

我想這:/?但它不工作!它仍然匹配其他斜線!

即使ap?比賽都AP的來自蘋果的話

武漢理工大學我做錯了這裏?它像?沒有任何幫助的情況。 即時通訊使用http://regexpal.com/來測試這一切

+0

你在用什麼語言? –

+0

我需要一個PowerShell腳本即時編寫 – user2162791

+0

你期待什麼輸出? – hwnd

回答

1

你可以試試這個正則表達式。

^[^/]*/ 

這裏是如何做到這一點的PowerShell的

PS C:\Users\Someone>new-variable -name address -visibility public -value "www.blabla.com/hello/apple/apple/banana/" 

PS C:\Users\Someone>$address -match "^([^/]*)(/)"  

PS C:\Users\Someone>($a, $b) = $matches[1], $matches[2] #save the previously matched group in other variable to protect them from being overwritten. 
#$a has 'www.blabla.com' 
#$b has '/' 

PS C:\Users\Someone>$address -replace "$a$b", "$a-" 
#address now has 'www.blabla.com-hello/apple/apple/banana/' 
#        ^see the change here. 
+0

爲什麼第二對'[]'? –

+0

是否在regexpal.com上測試過它?它匹配所有的東西,包括第一個斜線。我需要它匹配只是斜線,沒有什麼比這更少。 – user2162791

+1

請edi_allen,可以在發佈之前先測試regexpal.com中的正則表達式模式嗎?/^ [^ /] * \ //不匹配任何東西 – user2162791

0

由於您使用PowerShell中,它使用.NET正則表達式,請嘗試:

(?<!.*/.*)/ 

這是一個簡單的負回顧後,檢查前的匹配字符串任何/字符後跟在/字符匹配。對於第一個/,以前不會有任何/ s,所以匹配會成功,但是對於後續的/ s,將會有一個或多個/ s,所以向後看會確保這些匹配失敗。

由於這是一個.NET正則表達式,我使用了一個.NET在線測試器:http://regexstorm.net/tester。還有其他人應該工作得很好,這只是一個偏好問題。 請勿使用http://regexpal.com/,因爲它使用的JavaScript與.NET正則表達式的工作方式不同,並且不會識別負向反向查看。

相關問題