dal*_*awh 7 regex bash shell inequality
以下检查是否以"结束"开头:
if [[ "$line" =~ ^End ]]
Run Code Online (Sandbox Code Playgroud)
我试图找出如何匹配不以"02/18/13"开头的东西.我尝试过以下方法:
if [[ "$line" != ^02/18/13 ]]
if [[ "$line" != ^02\/18\/13 ]]
Run Code Online (Sandbox Code Playgroud)
他们似乎都没有工作.
Gor*_*son 16
bash没有"不匹配正则表达式"运算符; 你可以否定(!
)测试"匹配正则表达式"运算符(=~
):
if [[ ! "$line" =~ ^02/18/13 ]]
Run Code Online (Sandbox Code Playgroud)
或使用"不匹配的字符串/ glob模式"运算符(!=
):
if [[ "$line" != 02/18/13* ]]
Run Code Online (Sandbox Code Playgroud)
全局模式与正则表达式完全不同,令人困惑.在这种情况下,模式很简单,唯一的区别是整数字符串预期与整个字符串匹配,因此不需要锚定(事实上,它需要一个通配符来解除模式结束).