`

ruby 正则表达式匹配但不包含

阅读更多
有个解析需求{sdbeis}
的到括号内的字符串
也可以是<html>...</html>
按说应该用
(?=\{)[^{}]*

或者
[^{}]*(?=\})

或者
(?=\{)[^{}]*(?=\})


实际上这种,匹配但并不在范围内的正则表达,只有在后面有用。就是说第一和第三的匹配都不能达到要求,第一个匹配成了{sdbeis,第三个有逻辑错误,没有匹配结果。只有第二个可以满足要求。
分享到:
评论
4 楼 夜鸣猪 2009-02-25  
受教了^_^
你们的办法好
3 楼 RednaxelaFX 2009-02-25  
嗯同orange0513,楼主需要的是环视(lookaround),包括正向环视(lookahead)和逆向环视(lookbehind)都需要。“环视”这个翻译方式是从《精通正则表达式》的中文版看到的,觉得这词翻得不错。之前有一帖也用到过lookahead和lookbehind的组合,http://rednaxelafx.iteye.com/blog/193648
2 楼 wxz125627771 2009-02-25  

irb(main):003:0> str="{{sf}s{ssf}"
irb(main):003:0> str.scan(/\{(.*?)\}/).to_s
=> "{sfssf"
1 楼 orange0513 2009-02-25  
你用的这个本来就是look ahead(零宽度肯定预查),看名字也知道是用在后面的了。
ruby1.9有look behind了,分别是零宽度肯定回顾(?<=)和零宽度否定回顾(?<!)

相关推荐

    ruby正则表达式

    接下来,我们将深入探讨Ruby正则表达式的主要知识点。 ### 一、字符规则 1. **基础字符匹配**:`/a/`会匹配字符`a`。 2. **字符集**:`/[\d]/`匹配任意数字;`/[\w]/`匹配任何字母、数字或下划线;`/[\s]/`匹配...

    ruby正则表达式规则

    ### Ruby正则表达式规则详解 #### 一、引言 在Ruby编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,被广泛应用于字符串搜索与替换、数据验证以及模式匹配等场景。本篇文章将深入探讨Ruby...

    精通正则表达式(第三版)

    如今,正则表达式已经成为众多语言及工具--Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)--中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。...

    精通正则表达式 中英文

    如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB.NET和c#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...

    正则表达式.pdf

    正则表达式不仅限于Python,许多编程语言都支持正则表达式,包括Java、JavaScript、Perl、Ruby等。 正则表达式的组成部分: 1. 字符:包括字母、数字、特殊字符等。 2. 元字符:包括.、*、+、?、{、}、[、]、\、^...

    正则表达式入门指导.ppt

    - **大小写不敏感**:默认情况下,正则表达式是区分大小写的,但可以设置为不区分大小写。 - **通配符**:`.`代表任意单个字符,如"t.n"会匹配所有以"t"开始,以"n"结束的字符串,包括"tan"、"ten"等。 正则表达式...

    精通正则表达式电子书

    - **时间与精力的节省**:正则表达式能够帮助我们快速完成文本匹配等工作,极大地节省时间和减轻负担。 - **解决问题的新途径**:正则表达式可以用来解决一系列复杂的问题,提供更为优雅的解决方案。 #### 四、本书...

    精通正则表达式(第三版)

    如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...

    完全自动的正则表达式编写工具

    在编程和数据处理领域,正则表达式是不可或缺的一部分,但编写复杂的正则表达式往往需要深厚的知识和大量的实践。为了简化这一过程,出现了“完全自动的正则表达式编写工具”。 该工具的核心功能是帮助用户自动生成...

    正则表达式工具 for mac

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,它在编程、数据处理和文本分析等领域广泛应用。"正则表达式工具 for mac" 是一款专为Mac用户设计的高效软件,它允许用户在多种...

    正则表达式袖珍手册

    正则表达式的应用范围非常广泛,包括但不限于: - **搜索和替换操作**:可以在文本中查找特定的模式,并用新的内容替换这些模式。 - **格式验证**:例如验证电子邮件地址、电话号码等是否符合预设的格式。 - **数据...

    [精通正则表达式(第3版)]中文版.(美)Jeffrey.E.F.Friedl-part1.rar

    如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MySQL、VB.NET和C#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...

    精通正则表达式_第三版(英文版)

    最后,书中会讨论如何在各种编程语言中使用正则表达式,包括Perl、Java、JavaScript、Python和Ruby等。每种语言都有其特有的API和实现细节,理解这些差异对于实际开发至关重要。 总之,《精通正则表达式》第三版是...

    Ruby-一个漂亮的正则表达式用于查找和提取这些文件中的相对URL

    这个正则表达式会匹配`href`属性值,其中`[^"'\s]+`表示匹配除引号和空格之外的任何字符,`i`表示不区分大小写。在实际应用中,我们还需要考虑CSS、JavaScript等其他可能包含URL的场景,以及URL的各种格式。 接下来...

    正则表达式匹配工具——主流的开发语言(C#、Java、C++、VB、Ruby以及Python等)

    这是一款正则匹配工具,正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个...

    正则表达式测试 工具

    比如,支持多种正则表达式引擎(如ECMAScript、Perl、Ruby等)的模式,具有多语言界面,还可以进行性能测试,测量不同正则表达式的执行速度。此外,可能还具备教学功能,通过实例和解释帮助用户学习和理解正则表达式...

    精通正则表达式英文原版-第3版

    正则表达式作为一个强大的工具,在处理文本和数据时拥有极高的效率和灵活性,被广泛应用于多种编程语言和流行工具中,比如Perl、Python、Ruby、Java、***、C#(以及任何使用.NET框架的语言)、PHP和MySQL。...

    精通正则表达式(第3版) Mastering.Regular.Expressions

    第2版与第1版相隔五年半的时间,在这期间,包括Perl、Python、Tcl、Java和Visual Basic在内的多种编程语言对正则表达式提供了新的支持,同时也出现了像PHP、Ruby、C#等新的语言,这些语言都内建了对正则表达式的支持...

Global site tag (gtag.js) - Google Analytics