我正在尝试匹配字符串,如:"+ 99"," - 82","5","auto"和"max"== auto和max和数字(让我们说整数)有或没有符号
我试过正则表达式
var='^([+|-]{0,1}[0-9][0-9]*)|(auto)|(max)$'
但它在"至少n次但不超过m"的情况下失败,在我的情况下{0,1}无论如何我测试了var ='ab {0,1}'和var ='ab {2}'并且这些没有不工作
我没有得到任何感情,但我认为下一个问题可以通过这些:()
我正在使用#!/ bin/bash版本4.2.24(1)
提前致谢!
edit1: 我不知道如何将这个正则表达式分组?正如Karoly Horvath建议的那样工作.我正在使用我在某个地方找到的这个检查功能.
#!/bin/bash
INTEGER_MAX='^([+-])?[0-9][0-9]*$'
function isNumeric() {
check=`echo $1 | sed "s/\($2\)//"`
if [ -z ${check} ]; then
return 0
else
return 1
fi
}
isNumeric "$1" "$INTEGER_MAX" && echo "passed"
Run Code Online (Sandbox Code Playgroud)
edit2 - 求助
它正在使用
RE='(^([+-])?[0-9]+$)|(^auto$)|(^max$)'
测试
[[ $string =~ $pattern ]] && echo "passed"
谢谢!
如果我理解正确,在使用DB时,我必须执行以下操作
DaoMaster.OpenHelper helper = new DaoMaster.OpenHelper(this, "test-db", null) {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
};
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在不扩展活动或服务的类中执行此操作,我只是无法通过其上下文.
什么是正确的方法来打开我的数据库?它应该在哪里完成?
如果你能提供除官方greendao之外的一些教程链接(我在那里找不到答案),那就太好了.
如何检查是否没有提供必需的参数?我发现 switch case 中的 ":" 选项应该足以达到这个目的,但它永远不会进入那种情况(代码块)。我是否将“冒号”放在开头或其他地方都没有关系。
我的代码:
while getopts :a:b: OPTION;
do
case "$OPTION" in
a)
var1=$OPTARG
;;
b)
var2=$OPTARG
;;
?)
exitScript "`echo "Invalid option $OPTARG"`" "5"
;;
:)
exitScript "`echo "Option -$OPTARG requires an argument."`" "5"
;;
*)
exitScript "`echo "Option $OPTARG unrecognized."`" "5"
;;
esac
done
Run Code Online (Sandbox Code Playgroud)
提前感谢。