0 0

求包含字符串 “AAA”,而且不包含字符串 “BBB”"的正则表达式5

a = /(^((?!gif).)*$)/i
a1= /php/i

b = "a string XXXXX"

puts "ok" if (b =~ a) and (b =~ a1)

请问把a和a1两个表达式合并怎么写?
表示:"同时匹配,包含字符串 “php”,而且不包含字符串 “gif”"的表达式.

谢谢!~~~~
2008年8月06日 13:02

1个答案 按时间排序 按投票排序

0 0

采纳的答案

/^((?<!gif).)*(?<!gif)php(?!gif)(.(?!gif))*$/


注意用到了 look behind assertion,如果是用于 Ruby,1.8 系列内置的正则表达式引擎是不支持的,需要用  gem 安装用于 1.9 的正则表达式引擎 Oniguruma。

gem install oniguruma

2008年8月06日 14:28

相关推荐

    java正则表达式替换字符串

    ### Java正则表达式替换字符串详解 #### 一、引言 在Java编程语言中,正则表达式是一种强大的文本处理工具,它可以帮助开发者轻松地完成字符串搜索、替换等任务。本文将详细介绍如何使用Java正则表达式进行字符串...

    正则表达式。包括零宽断言,正则替换的150种表达方式

    正则表达式是一种强大的文本处理工具,用于模式匹配、搜索和替换字符串中的特定模式。本文将深入探讨正则表达式的高级应用,特别是零宽断言和正则替换的150种表达方式。 ### 一、零宽断言 零宽断言(Zero-width ...

    正则表达式常用的方法

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在Java编程语言中,正则表达式提供了强大的文本处理能力,通过预定义的字符类、元字符...

    JS正则截取两个字符串之间及字符串前后内容的方法

    以下知识点将详细讲解如何利用正则表达式截取字符串以及它的前后内容,包括如何匹配以及提取。 ### 正则表达式基础 正则表达式(Regular Expression),通常简称为 Regex,是一种强大的文本处理工具。它是一组由...

    使用正则表达式生成随机数据的方法

    正则表达式中包含许多特殊的字符和语法,它们可以定义字符类、量词和断言等,用以匹配字符串。生成随机数据时,可以利用正则表达式定义数据的规则,然后通过编写代码来生成符合这些规则的随机数据。 在文中提供的...

    正则表达式_贪婪与惰性

    在编写正则表达式时,理解这两种量词的差异至关重要,以确保正则表达式能正确匹配目标字符串。在需要精确控制匹配次数的情况下,惰性量词尤其有用,因为它避免了过度匹配的问题。而在需要尽可能多的匹配时,贪婪量词...

    正则表达式-基础知识

    - **示例**:如果要匹配 `"aaabbbccc"` 中的所有连续的 `"a"` 或 `"b"` 或 `"c"`,我们可以使用正则表达式 `a*b*c*`。 3. **`+`(加号)** - **作用**:表示前一个字符至少出现1次。 - **示例**:使用 `+` 替代...

    揭开正则表达式的神秘面纱

    2.2 位置匹配^ 表示字符串的开始,$ 表示字符串的结束,可以用来判断字符串是否以特定字符或模式开头或结尾。2.3 量词与重复前面介绍的 {m,n}、*、+、? 等都是量词,用于控制匹配次数。"+" 是 1 次或多次,"*" 是 0 ...

    js正则表达式 匹配两个特定字符间的内容示例

    正则表达式包含多种元素,如字符类(`[abc]`匹配任一字符`a`、`b`或`c`)、量词(`*`表示前面的字符重复零次或多次)、锚点(`^`匹配行的开始,`$`匹配行的结束)、特殊字符(`.`匹配除换行符之外的任何单个字符)等...

    Java中的正则表达式与模式匹配研究.pdf

    在Java中,正则表达式还支持预编译模式,即通过`Pattern.compile(regex, flags)`添加标志来改变匹配行为,例如`CASE_INSENSITIVE`使匹配不区分大小写,`DOTALL`让`.`匹配包括换行符在内的所有字符。 总的来说,Java...

    Java正则表达式的10大问题.pdf

    这个正则表达式可以匹配如`AAABBB`这样的字符串,但不会匹配`aaaabbb`或`aaabbbb`。 以上六个问题只是Java正则表达式应用的冰山一角。其他问题包括使用预定义字符类、使用捕获组、使用量词、使用选择符以及使用负向...

    正则表达式---Python程序设计1

    `re.findall()` 方法用于查找字符串中所有与正则表达式匹配的子串,并返回一个列表。 **示例:** ```python text = "你好,世界!Hello, world!" pattern = r"[a-zA-Z]+" result = re.findall(pattern, text) ...

    正则表达式1天培训教程.pdf

    - **定义**:正则表达式(Regular Expression)是一种强大的文本处理工具,它由一系列特殊的字符序列组成,用于匹配、查找和替换字符串中的模式。 - **应用场景**:广泛应用于文本搜索、数据验证、字符串解析等场景...

    字符串分隔(C#).txt

    1. **定义字符串**:与前一个例子类似,这里定义了一个包含多个分隔符的字符串。 2. **执行分割**:使用 `Split` 方法,第一个参数是字符数组,表示所有可能的分隔符。 3. **遍历数组并输出结果**:同上,使用 `...

    Python对字符串实现去重操作的方法示例

    1. **使用`re.split()`**:当面对复杂的字符串分割需求时,正则表达式提供了强大的功能。上述示例中使用了`re.split()`方法,它可以基于一个或多个模式进行分割,非常适合处理包含多种分隔符的情况。 2. **使用`...

    Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)

    该函数有多个参数,分别代表当前匹配到的字符串(match)、匹配到的子表达式(param,如果正则表达式中包含多个括号,则param将是一个包含这些子匹配的数组)、匹配项在原始字符串中的起始位置(offset)以及整个...

    正则表达式笔记

    ### 正则表达式基础知识详解 #### 一、原子(Atoms) 在正则表达式中,原子是最基本的构建块,它可以是一个简单的字符或者是代表一类字符的符号。 ##### 普通字符 普通的字符(例如字母、数字或下划线等)可以...

Global site tag (gtag.js) - Google Analytics