Android 正则表达式 匹配 (数字)x(数字)

Java

// 匹配 (数字)x(数字) 格式的字符串
String mPattern = "(\\d+)(x|X)(\\d+)";
Pattern r = Pattern.compile(mPattern);
Matcher m = r.matcher(chosedFile);
if (m.find()) {
    try {
        // 得到两个数字的值
        int x= Integer.parseInt(m.group(1));
        int y= Integer.parseInt(m.group(3));
    } catch (NumberFormatException e) {
        e.printStackTrace();
    }
} 

C++

regex_t reg;
regmatch_t pmatch[1];
char *pattern = "[0-9]*x[0-9]*";
int rtn = regcomp(&reg,pattern,REG_ICASE|REG_EXTENDED);
if(rtn != 0)
    return false;
rtn = regexec(&reg,path,1,pmatch,0);
if(rtn != 0)
    return false;
int length = pmatch[0].rm_eo- pmatch[0].rm_so;

char* num1 = new char[length];
char* num2 = new char[length];
int start = pmatch[0].rm_so;
char* num = num1;
for(int i=0;i<length;++i) {
    if(path[i+start]=='x'||path[i+start]=='X'){
        *num = '\0';
        num = num2;
        continue;
    }
    *num = path[i+start];
    ++num;
}
*num = '\0';

int x= atoi(num1);
int y= atoi(num2);
delete num1;
delete num2;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值