Regex将删除前面出现的内容\&引用;使用powershell

Regex将删除前面出现的内容\&引用;使用powershell,regex,powershell,Regex,Powershell,想要一个帮助,想要一个正则表达式来消除“\”和之前出现的东西 Input should be "vmvalidate\administrator" and the output should be just "administrator" 删除字符串开头的所有非反斜杠字符,后跟反斜杠: 说明: ^ # Start of string [^\\]* # Match zero or more non-backslash characters \\ # Match a backs

想要一个帮助,想要一个正则表达式来消除“\”和之前出现的东西

Input should be "vmvalidate\administrator" 
and the output should be just "administrator"
删除字符串开头的所有非反斜杠字符,后跟反斜杠:

说明:

^      # Start of string
[^\\]* # Match zero or more non-backslash characters
\\     # Match a backslash
这意味着,如果字符串中有多个反斜杠,则仅删除第一个反斜杠(及其前面的文本)。如果要删除所有内容直到最后一个反斜杠,请使用

$result = $subject -creplace '(?s)^.*\\', ''

无需使用正则表达式,请尝试拆分方法:

$string.Split('\')[-1]

这是我在学习regex或spliting之前做事情的方式

"vmvalidate\administrator".SubString("vmvalidate\administrator".IndexOf('\')+1)
  • ^-从字符串开始
  • .*-任何数量的任何char
  • ?-量词的惰性模式
  • \-“反斜杠”使用转义字符“”

总之,它意味着“从字符串开始到反斜杠替换所有字符”

$string.Split('\')[1]
更令人愉快。如果输入不包含任何
\
(例如,输入已经是管理员),
[1]
将不返回任何内容,无论
[-1]
是否返回输入。
"vmvalidate\administrator".SubString("vmvalidate\administrator".IndexOf('\')+1)
"vmvalidate\administrator" -replace "^.*?\\"