我很抱歉这么愚蠢的问题!我以前使用过正则表达式模式,但由于某种原因,我遇到了这个问题。仅匹配字符串中的第一个斜杠或 wutever:
www.blabla.com/hello/apple/apple/banana/
我试过这个:/?
但它不起作用!它仍然与其他斜线匹配!
甚至ap?
匹配苹果词中的两个 ap
我在这里做错了吗?它就像?
无助于帮助这种情况。我使用http://regexpal.com/来测试这一切
我很抱歉这么愚蠢的问题!我以前使用过正则表达式模式,但由于某种原因,我遇到了这个问题。仅匹配字符串中的第一个斜杠或 wutever:
www.blabla.com/hello/apple/apple/banana/
我试过这个:/?
但它不起作用!它仍然与其他斜线匹配!
甚至ap?
匹配苹果词中的两个 ap
我在这里做错了吗?它就像?
无助于帮助这种情况。我使用http://regexpal.com/来测试这一切
你可以试试这个正则表达式。
^[^/]*/
这是在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.
由于您使用的是使用 .NET 正则表达式的 Powershell,请尝试:
(?<!.*/.*)/
这只是一个否定的向后查找,它在匹配之前检查字符串是否有任何/
字符,然后是匹配的/
字符。对于 first /
,不会有任何先前/
的 s,因此匹配会成功,但对于后续/
的 s,会有一个或多个/
s,因此后向确保这些匹配将失败。
由于这是一个 .NET 正则表达式,我使用了一个 .NET 在线测试器:http ://regexstorm.net/tester 。还有其他的应该也能正常工作,这只是一个偏好问题。 不要使用http://regexpal.com/,因为它使用 JavaScript,它与 .NET 正则表达式的工作方式不同,并且不会识别负面的lookbehinds。