Powershell的:
帮助:我想截断这个网址:
https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html
进入这个:
merry-christmas-and-still-merry-shes-still-so-beautiful
并将其存储到变量中。
我尝试过通配符,但不会工作。我试过更换" /"换行"`n"并尝试阅读最后一行。我也成功尝试了下面的代码。 我使用和工作的代码是:
$rightPart="https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html"
$rightPart=$rightPart.Replace(".html","")
while($rightPart -imatch "/"){
$pos = $rightPart.IndexOf("/")
$rightPart = $rightPart.Substring($pos+1)
}
Write-Output "String is: $rightPart"
但我想要一个更好的方法。 感谢您的帮助。
答案 0 :(得分:3)
您可以使用URI类查询URL,并使用FileInfo构造函数来获取文档的基本名称,而不是对字符串解析杂技进行查询。
$url = "https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html"
([IO.FileInfo]([System.Uri]$url).Segments[-1]).BaseName
这有什么好处,它将获取URL中的最后一个文件名,无论它是以.htm / .html / .asp / .aspx / etc结尾,还是你有一个斜杠" /& #34;或者20。
另一种方法是使用Split-Path并抓取leaf对象并抓取FileInfo对象的BaseName。
([IO.FileInfo](Split-Path $url -Leaf)).BaseName
答案 1 :(得分:2)
就这样做:
$URL="https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html"
[System.IO.Path]::GetFileNameWithoutExtension($URL)
答案 2 :(得分:1)
$url = 'https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html'
$arr = $url -split '/'
$truncatedVar = ($arr[$arr.Length-1]).Substring(0, $arr[$arr.Length-1].IndexOf('.'))
答案 3 :(得分:1)
您还可以使用-replace
运算符的正则表达式。
$url = 'https://thoudamchitaranjan.blogspot.in/2017/12/merry-christmas-and-still-merry-shes-still-so-beautiful.html'
$truncatedVar = $url -replace ".*/(.*)\.html",'$1'
.*/
匹配任意字符的零个或多个,直到最后一个斜杠
(.*)\.html
匹配任何字符的零个或多个,直到.html
字符串。括号使所有匹配的文本被捕获到变量。
'$1'
是-replace
运算符的第二个参数,告诉它用什么来替换匹配的文本。在这种情况下,$1
会评估(.*)
/编辑修复双引号,也转义了'。'在.html
答案 4 :(得分:1)
补充Ricc Babbitt's helpful answer:
PowerShell 核心 - 但遗憾的是,不是Windows PowerShell - 支持 Split-Path -LeafBase
,允许在单个操作中提取基本文件名(没有扩展名的文件名):
# PowerShell *Core* only
PS> Split-Path -LeafBase "https://example.org/shes-still-so-beautiful.html"
shes-still-so-beautiful