在流行的命令式语言中,一旦case语句匹配,switch语句通常会"落到"下一级.
例:
int a = 2;
switch(a)
{
case 1:
print "quick ";
case 2:
print "brown ";
case 3:
print "fox ";
break;
case 4:
print "jumped ";
}
Run Code Online (Sandbox Code Playgroud)
会印出"棕色狐狸".
但是bash中的代码相同
A=2
case $A in
2)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
4)
echo "JUMPED"
;&
esac
Run Code Online (Sandbox Code Playgroud)
只打印"布朗"
如何将bash中的case语句"覆盖"到第一个示例之类的剩余条件?
(编辑:Bash版本3.2.25,;&语句(来自wiki)导致语法错误)
运行:
test.sh:
#!/bin/bash
A=2
case $A in
1)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
esac
Run Code Online (Sandbox Code Playgroud)
得到:
./test.sh:line …
我在表中有一个充满正则表达式的列.
我的代码中有一个字符串,我想找出该列中哪些正则表达式与该字符串匹配并返回这些行.
除了拉动每一行并匹配正则表达式(这是昂贵的,检查单个页面加载可能数千条记录)有没有办法在SQL中执行此操作而不是一个(或几个)查询?
输入示例:W12ABC
示例列数据
1 ^[W11][\w]+$
2 ^[W12][\w]+$
3 ^[W13][\w]+$
4 ^[W1][\w]+[A][\w]+$
5 ^[W1][\w]+[B][\w]+$
6 ^[W1][\w]+[C][\w]+$
Run Code Online (Sandbox Code Playgroud)
应该返回第2行和第4行.