回 帖 发 新 帖 刷新版面

主题:字符串截取

CREATE TABLE `yiyao_lm` (
  `lmid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) DEFAULT NULL,
  `atime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`lmid`)
) ENGINE=MyISAM AUTO_INCREMENT=176 DEFAULT CHARSET=utf8 |
以上是一个字符串,请问我应该怎么做才能截取到单引号里面的字段,如‘lmid’
和‘name‘等在单引号里的数据。注意单引号里面的字段是会变的,例如这次是lmid,下次可能就是aid了,如下:
CREATE TABLE `yiyao_infru` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) DEFAULT NULL,
  `atime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`lmid`)
) ENGINE=MyISAM AUTO_INCREMENT=176 DEFAULT CHARSET=utf8 |
所以最好能够根据前后的关键词之类的东西把中间的东西取出来,谢谢了

回复列表 (共5个回复)

沙发

mysql那个语句不是逗号,而是“`”
直接用最基础的字符串搜索就可以实现了,成对匹配

板凳

怎么匹配出来啊?可不可以写出来我看下啊,因为''里面的那些字段是会变的,所以我找不到方法来取出来,请帮我写出来看看啊

3 楼

最基础匹配,找到第一个“`”的位置,找到第二个“`”的位置,取中间
依次类推,每到偶数次,就取字符串

4 楼

大侠,帮我写一写好吗?就从我这个例子下手,对字符串截取我真的不是很懂啊,但这次的业务需要用到这个,所以恳请你帮帮忙啊,感激不尽

5 楼

int pos1 = -1, pos2;
while((pos1 = str.IndexOf('`', pos1 + 1) > -1){
    pos2 = str.IndexOf('`', pos1 + 1);
    tmp = str.SubString(pos1 + 1, pos2 - pos1 - 1); // 此时提取的就是所需的内容
}

注意,这个只是一个示例,我没有加任何错误判断的代码

我来回复

您尚未登录,请登录后再回复。点此登录或注册