powershell - 正则表达式匹配如果包含 $ 则不起作用
问题描述
以下匹配返回 false。如何更改正则表达式以更正它?
"hello$world" -match '^hello$(wo|ab).*$'
"hello$abcde" -match '^hello$(wo|ab).*$'
解决方案
'hello$world' -match '^hello\$(wo|ab).*$'
'hello$abcde' -match '^hello\$(wo|ab).*$'
您需要用单引号引用左侧,因此$world
不被视为变量插值。您需要$
在右侧转义,因此它不会被视为行尾。
从关于报价规则:
当您将字符串括在双引号(双引号字符串)中时,以美元符号 (
$
) 开头的变量名将替换为变量的值,然后再将字符串传递给命令进行处理。...
当您将字符串括在单引号中时(单引号字符串),该字符串将完全按照您键入的方式传递给命令。不执行替换。
从关于正则表达式:
两个常用的锚点是
^
和$
。克拉^
匹配字符串的开头$
,而 匹配字符串的结尾。这使您可以在特定位置匹配文本,同时丢弃不需要的字符。...
转义字符
反斜杠
\
用于转义字符,因此它们不会被正则表达式引擎解析。保留以下字符:
[]().\^$|?*+{}
.您需要在您的模式中转义这些字符以在您的输入字符串中匹配它们。
推荐阅读
- reactjs - 如何从需要使用 react-dates 设置状态的函数的子组件设置状态?
- excel - Excel公式计算两个日期列之间的差异
- google-cloud-platform - 无法构建容器优化操作系统 | sed: -e 表达式 #2, char 60: `s' 的未知选项
- javascript - 自定义缩放的 Fancybox 默认问题
- python - lines+=line/ TypeError: can't concat str to bytes
- python - Boto3 ec2 describe_images 太慢了
- android - 是否可以让数据绑定为变量生成不可为空的访问器?
- amazon-web-services - 调用 API 网关跨账户时出错
- pandas - 在我老死之前尝试用 dataframe.to_hdf 加载 hdf5 表
- flutter - 停用和处置之间的区别?