简单的正则表达式匹配会产生截然不同的结果,具体取决于shell版本

时间:2018-01-08 08:51:49

标签: regex bash shell

长话短说:

bash --version | head -n 1; [[ "abc" =~ "^a" ]] && echo Match || echo No match

主持人1的结果:

GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Match

主持人2的结果:

GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)
No match

我应该检查哪些环境指令和/或配置选项才能产生一致的结果?

完成后,请注意他们并不总是无法匹配所有正则表达式。略微改变正则表达式(删除"字符串的开头"插入符号约束)确实产生一致的结果:

bash --version | head -n 1; [[ "abc" =~ "a" ]] && echo Match || echo No match

主持人1的结果:

GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Match

主持人2的结果:

GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)
Match

0 个答案:

没有答案