为何Notepad++中能匹配OwnerUserId=".*"却无法匹配ParentId=".*"?
问题原因分析
- 换行截断正则匹配:Notepad++的正则默认规则里,
.不会匹配换行符。如果ParentId="x"里的引号内容跨行了,.*只能匹配到当前行结尾,没法覆盖换行后的内容,就会出现搜不到或仅搜到少数行的情况。而OwnerUserId=".*"能全搜到,说明它的目标内容都在同一行里。解决方法可以把.*换成[\s\S]*(匹配所有字符,包括换行),或者在搜索窗口的「正则表达式」模式下,勾选「. matches newline」选项。 - 大小写不匹配:检查文本里
ParentId的实际大小写,比如文本里是全小写的parentId,但你搜的是大写开头的ParentId,Notepad++正则默认区分大小写,这就会匹配失败。OwnerUserId能搜到是因为正则和文本里的大小写完全对应。 - 引号类型不统一:如果文本里
ParentId用的是单引号'或者中文智能引号「“”」,但你用英文双引号"去搜索,自然匹配不上。而OwnerUserId刚好使用的是英文双引号,所以能正常搜到。
内容的提问来源于stack exchange,提问作者breath
相关产品推荐
相关产品推荐

