Board logo

标题: [问题求助] PowerShell正则中的两种转义符 怎么理解? [打印本页]

作者: 5i365    时间: 2022-10-20 13:32     标题: PowerShell正则中的两种转义符 怎么理解?

一直对正则中的转义符不理解, 这次彻底晕了
请路过高人指路!

下面的两种代码执行结果相同, 怎么解释?


"中国`r`n日本" -split "`r`n"

"中国`r`n日本" -split '\r\n'

作者: Five66    时间: 2024-1-30 23:36

1年惨案...

反引号(`)是powershell解析时的转义符
反斜杠(\)是常规解析时的转义符(例如正则,或其他语言的字符串)

第一句
"中国`r`n日本" -split "`r`n"
powershell读取后会将"`r`n"解析换成回车和换行符
-splitt默认是regexmatch模式,但是在regexmatch模式中回车和换行符没有其他意义
因此最后就是按照匹配回车和换行符的位置进行split

第二句
"中国`r`n日本" -split '\r\n'
'\r\n'在powershell读取解析阶段时没有其他意义,读取解析后'\r\n'就是'\r\n'
-splitt默认是regexmatch模式,在regexmatch模式中,由于包含反斜杠(\),'\r\n'会被解析转换为回车换行符
因此最后也是按照匹配回车和换行符的位置进行split




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2