关于正则表达式的语法问题

三国乐园 2013-08-08 02:22:27
(exp) 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

(exp)与(?:exp)区别在哪里?

捕获匹配的文本(什么意思?)

给此分组分配组号(什么意思?)

自动命名的组里是什么意思?


(?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
依然不理解。

能不能用实例代码讲解一下?
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
似梦飞花 2013-08-08
  • 打赏
  • 举报
回复
捕获到组里的话会消耗一定的资源 但有时候希望用小括号括起来来表示优先级之类的意思 但又不希望因此而捕获消耗资源 所以有了(?:) 大概是这样的
feraner 2013-08-08
  • 打赏
  • 举报
回复
看看这个博客,说的很明白 http://blog.csdn.net/lxcnn/article/details/4304754
张运领 2013-08-08
  • 打赏
  • 举报
回复
http://www.regexlab.com/zh/regref.htm 这个里面讲的还不错,可以看看,然后自己试试,就能了解到了
三国乐园 2013-08-08
  • 打赏
  • 举报
回复
引用 3 楼 fzfei2 的回复:
(?:)有分组,但不能被引用,也不会当集合输出
什么意思
fzfei2 2013-08-08
  • 打赏
  • 举报
回复
(?:)有分组,但不能被引用,也不会当集合输出
三国乐园 2013-08-08
  • 打赏
  • 举报
回复
var number = /(?:\d)+/g;
var number = /(\d)+/g;
有什么区别
liaohaibo 2013-08-08
  • 打赏
  • 举报
回复
1、(exp)与(?:exp)区别——你上面已经说了啊,前者是捕获符合括号里面规则的匹配子字符串,后者是不捕获。 2、给此分组分配组号的意思——如果你的正则表达式中有多个括号括起来的,则生成出来的匹配子字符串是个数组,这样就有组号。 3、自动命名的组——就是匹配出来的子字符串的组号,从1开始:1,2,3... 4、关于正则表达式如何操作获取匹配出来的子字符串,你看下面的JS代码:

var s1 = "{'item_get_response':{'item':{'props':'20418023:157305307;1632501:269068813'}}}";
var p1 = /\{'props':(.*?')\}/;
function chkRegpt(str, pattn){
//根据正则表达式提取内容
  var rst = str.match(pattn);
  if(rst != null){
    return rst[1];
  }else{
    return "...";
  }
}
var tt = chkRegpt(s1,p1);
alert(tt);
,输出结果:'20418023:157305307;1632501:269068813'

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧