我要替换域字符串
“ random.org”将所有内容带到句号后面
$newstring = $domain.replace #Not sure what else to add
我知道使用.Replace,但是不确定如何使用通配符功能以及它如何工作。
请给我一点帮助!
谢谢!
答案 0 :(得分:0)
您可以使用PowerShell的-replace
运算符,该运算符使用正则表达式:
$newstring = $domain -replace '^[^.]*'
如果您想知道缺少替换字符串,那么在PowerShell中这是可选的;上面的代码在功能上与
相同$newstring = $domain -replace '^[^.]*', ''
答案 1 :(得分:0)
如果仅查找TLD(.com,.org,.gov等),则可以将-replace与捕获一起使用。
PS C:\src\t> "www.myhome.org" -replace '^[^.]*'
.myhome.org
PS C:\src\t> "www.myhome.org" -replace '^.*(\..*)', '$1'
.org
答案 2 :(得分:0)
与正则表达式一起使用的PowerShell的“ -replace”运算符经常与字符串上的“ .replace”方法混淆。有很多方法可以给猫咪剥皮,但是您的问题很难准确回答。
无论如何,您都不希望使用“方法”
string.replace()
代替其他建议,使用“运算符”
string -replace "regex_to_be_replaced_here", "replacement_here"
已经提供了两个示例。我会选择Joey's,他的正则表达式说“从字符串的开头开始,匹配除点(“。”)之外的所有内容,然后将其替换为空,从而有效擦除它们,使点后的部分消失:
$newstring = $domain -replace '^[^.]*', ''
您也许还可以使用.split方法或-split运算符
string.split("some_delim") or string -split "some_delim"
示例:
$domain = "random.org"
$domain.split('.')[-1]
org
分割运算符,例如-replace运算符使用正则表达式,其中“。”具有特殊含义,因此您需要对其进行转义,告诉正则表达式您确实要匹配“。”。
($domain -split '\.')[-1]
org
如果您已经从字符串的右边知道了多少个字符,您甚至可以使用substring()。以下方式给我$ domain的最后3个字符:
$domain.substring($domain.length - 3)
org