为什么baseline.config.total.no.1of.banner=a_1
和baseline.config.total.no.2of.banner=b_2
包含在输出中? baseline.config.total.no..*.
不应该在1of
和2of
之间需要一个点吗?
$ grep "baseline.config.total.no..*." ./output/messages_en.properties
baseline.config.total.no.1of.banner=a_1
baseline.config.total.no.2of.banner=b_2
baseline.config.total.no.1.of.banner=10-1streak
.
匹配任何东西,而不仅仅是一个点;那(和*
的意思是“匹配最后一次0或更多次”)是为什么.*
的意思是“匹配任何东西,零次或多次”。
因此,正则表达式baseline.config
也将匹配字符串baseline-config
,或字符串baselineoconfig
- 点在未转义时或在字符类中始终是通配符。
由于你想要的点只匹配点,考虑[.]
- 创建一个单字符字符类。与\.
相比,这更可靠(对引用上下文不太敏感),另一种选择。
grep 'baseline[.]config[.]total[.]no[.].*[.]'