找回密码
 注册
Simdroid-非首页
查看: 53|回复: 4

matlab 用正则表达式如何提取两个字符间的字符串?

[复制链接]
发表于 2014-2-19 19:38:30 | 显示全部楼层 |阅读模式 来自 湖北襄阳
字符串:'a=-5,matlab55simwe'
请问如何提取=和,字符之间的字符串?
发表于 2014-2-20 11:57:10 | 显示全部楼层 来自 山东青岛
Simdroid开发平台
  1. ss = 'a=-5,matlab55simwe'

  2. ss =

  3. a=-5,matlab55simwe

  4. >> regexp(ss,',','split')

  5. ans =

  6.     'a=-5'    'matlab55simwe'
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2014-2-20 12:14:27 | 显示全部楼层 来自 湖北襄阳

谢谢版主的回复,那怎么样提取ss中的-5呢,入过等号后边是5,呢?
回复 不支持

使用道具 举报

发表于 2014-2-20 13:39:01 | 显示全部楼层 来自 山东青岛
nibam11 发表于 2014-2-20 12:14
谢谢版主的回复,那怎么样提取ss中的-5呢,入过等号后边是5,呢?
  1. regexp(ss,'(?m)(?<=^a\s?\=).*?(?=,)','match')
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2014-2-27 00:08:37 | 显示全部楼层 来自 英国
另外提供几种不用look around的方法:
  1. >> regexp(str, '=(.*),', 'tokens');
  2. ans{1}{1}

  3. ans =

  4. -5
复制代码
  1. >> regexp(str, '=(.*),', 'tokenextents');
  2. str(ans{1})

  3. ans =

  4. -5
复制代码
  1. >> regexprep(str, '.*=(.*),.*', '$1')

  2. ans =

  3. -5
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-21 03:07 , Processed in 0.040610 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表