我在 powershell 中使用以下行,找到了我所寻找的内容。
Select-String -Path *.txt -Pattern '(.*)pov\"(.*)Fred(.*)\"$'
但我无法使用 notepad++ 中的 find 命令来查找任何内容。
选择了环绕,选择了正则表达式,没有选择换行符
这两个系统使用正则表达式的方式是否存在一些基本区别。
行示例为:- pov" example text Fred "
答案1
我能够在 Notepad++ 7.9.2 中重现该问题,并立即解决了它。
我如何复现它
使用'(.*)pov\"(.*)Fred(.*)\"$'
(带单引号),它返回错误:Find: Can't find the text "'(.*)pov\"(.*)Fred(.*)\"$'"
,这是正确的。
我如何解决它
只需删除单引号,它就会正确找到匹配项:
解释
正则表达式被视为字符串,在 PowerShell 中,用引号('
和"
)括起来的文本被视为字符串对象,在大多数(如果不是全部)编程语言中,您需要明确使用引号将一段文本变成字符串对象。
但是在 Notepad++ 中,您输入的所有内容都已被视为字符串,因此引号将成为文字引号和字符串的一部分,从而改变正则表达式的含义,因此不会出现匹配。
根据评论更新
我自己测试了一下,发现不需要使用fred
(小写),Fred
(正确大小写)就可以了,Notepad++ 不区分大小写。
证明: