2

こんなくだらない質問ですみません!以前に正規表現パターンを使用したことがありますが、何らかの理由でこれに問題があります。文字列の最初のスラッシュまたは wutever だけに一致する:

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

私はこれを試しました:/? しかし、うまくいきません!それはまだ他のスラッシュと一致します!

ap?リンゴの単語の両方の ap にも一致します

私はここで間違っていますか?? そのような?状況を助けるために何もしません。http://regexpal.com/を使用してこれをすべてテストしています

4

2 に答える 2

5

この正規表現を試すことができます。

^[^/]*/

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.  
于 2013-10-13T22:04:22.513 に答える
0

.NET 正規表現を使用する Powershell を使用しているので、次を試してください。

(?<!.*/.*)/

/これは、一致する文字の前に文字列をチェックし、その後にその文字に一致するものをチェックする単純な否定的な後読みです/。最初の/では前の が存在しない/ため一致は成功しますが、後続/の では 1 つ以上/の が存在するため、後読みによってこれらの一致が確実に失敗します。

これは .NET 正規表現であるため、.NET オンライン テスター ( http://regexstorm.net/tester ) を使用しました。同様に機能するものは他にもありますが、それは好みの問題です。 http://regexpal.com/は使用しないでください。これは JavaScript を使用するため、.NET 正規表現と同じようには機能せず、否定的な後読みを認識しません。

于 2013-10-13T22:38:29.453 に答える