javascript - 正则表达式匹配@和空格之间的字符

 JieGe木 发布于 2022-11-28 11:19

举个例子:AAA@XXXYYYY
匹配到@和空格之间的字符XXX,请问正则怎么来写?

6 个回答
  • preg_match('/@(.*)/','AAA@XXXYYYY',$result);
    2022-11-28 12:42 回答
  • if(preg_match_all('%@(\w+)%u','@张全蛋含泪质检@三星Note7被炸飞,听说@炸机跟@啤酒更配哦!',$arr)){var_export($arr);}//输出array(0=>array(0=>'@张全蛋',1=>'@三星Note7',2=>'@炸机',3=>'@啤酒',),1=>array(0=>'张全蛋',1=>'三星Note7',2=>'炸机',3=>'啤酒',),)

    正则表达式%@(\w+)%u中:
    %是分隔符.
    u是修饰符,表示unicode.
    \w是元字符,在ASCII下等价于[A-Za-z0-9_],在unicode下表示字符(包括中文)和数字和下划线.
    +是量词,表示1个或多个,等价于{1,}的写法.
    ()表示子模式,体现在匹配结果中的$arr[1]里.
    区别于主模式,体现在匹配结果中的$arr[0]里.

    另外,也可以试试下面这个正则表达式:

    %@(\S+)\s%其中:\s匹配空白字符,包括:空格,制表符(\t,\v),回车(\r),换行(\n),换页(\f),等价于[\t\r\n\v\f]\S匹配除空白字符外的任意字符,等价于[^\t\r\n\v\f]

    另外:

    preg_match:返回模式的匹配次数,0次(不匹配)或1次,因为preg_match在第1次匹配后会停止搜索.preg_match_all:返回完整匹配次数,如果发生错误返回FALSE.

    也就是说,如果上面的例子使用preg_match,那只能匹配到字符串中的"张全蛋".

    2022-11-28 12:42 回答
  • @(.+)\s

    2022-11-28 12:42 回答
  • varex="aaa@abcyyy";
    varpattern=/@(.+?)s/g;
    varrs=ex.match(pattern)[0].slice(1,4);

    2022-11-28 12:42 回答
  • 应该是这样:
    'AAA@XXXYYYY'.match(/@(.*)\s/)[1]
    如果要防止XXX中包含@和空格,就要这样:
    'AAA@XXXYYYY'.match(/@([^@\s]*)\s/)[1]

    2022-11-28 12:42 回答
  • varex="aaa@abcyyy";varpattern=/@(.+?)\s/g;pattern.exec(ex)[1]

    //abc

    2022-11-28 12:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有