楼主: wangyundlut
867 1

[问答] 正则表达式的问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
1267 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
899 点
帖子
7
精华
0
在线时间
23 小时
注册时间
2016-2-15
最后登录
2022-12-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
str = '<tr valign=top><td><a name="19184"></a>xyz';

>>regexp(hstr, '<.*+>', 'match')

ans =          {}

>>regexp(hstr, '<.*+', 'match')

ans =        '<tr valign=top><td><a name="19184"></a>xyz'
请问,根据上面的程序,我怎么不明白到底是怎么回事呢?
有人能通俗一点的讲讲吗?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:正则表达式 表达式 Match ATCH EXP 表达式

回帖推荐

matlab-007 发表于2楼  查看完整内容

当我们使用expr*时,matlab将尽可能的匹配最长的字符子串。如: str = 'xyz'; regexp(hstr, '', 'match') ans = '' 如果我们希望匹配尽可能短的字符子串时,可以在上面我们使用的字符串后使用'?',也就是expr*?,如: str = 'xyz'; regexp(hstr, '', 'match') ans = '' '' '' '' 还有一种是expr*+ ,这种表达式的用法很诡异,没弄懂在什么地方有用。如果哪位大侠有高见,望不吝赐教! 这个表达 ...
沙发
matlab-007 发表于 2016-8-28 17:19:42 |只看作者 |坛友微信交流群
当我们使用expr*时,matlab将尽可能的匹配最长的字符子串。如:
str = '<tr valign=top><td><a name="19184"></a>xyz';
regexp(hstr, '<.*>', 'match')
ans =
    '<tr valign=top><td><a name="19184"></a>'
    如果我们希望匹配尽可能短的字符子串时,可以在上面我们使用的字符串后使用'?',也就是expr*?,如:
str = '<tr valign=top><td><a name="19184"></a>xyz';
regexp(hstr, '<.*?>', 'match')
ans =
    '<tr valign=top>'    '<td>'    '<a name="19184">'    '</a>'
    还有一种是expr*+ ,这种表达式的用法很诡异,没弄懂在什么地方有用。如果哪位大侠有高见,望不吝赐教!
这个表达式的执行过程是这样的,先执行expr*,“游标”(如果有的话)就指到了与expr*匹配的字符子串的最末端,然后从那里开始再检查下一个字符与后面的表达式是否匹配,如果匹配就继续向前(如果一直成功则返回最长的字符串),如果不匹配则直接返回空。例如:
str = '<tr valign=top><td><a name="19184"></a>xyz';
regexp(hstr, '<.*+>', 'match')
ans =
     {}
regexp(hstr, '<.*+', 'match')
ans =
    '<tr valign=top><td><a name="19184"></a>xyz'

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 20:45