`

正则表达式之<六>使用子表达式

 
阅读更多
如&nbasp;{2,} 本意是想把&nbasp;出现两次或多次的找出来,但实际上确是
&nbasp;;;;
为什么会这样呢?因为{2,}只作用于紧挨着他的前一个字符;
这就引出了子表达式。

把一个表达式划分为一系列子表达式的目的是为了把那些子表达式当作一个独立的整体元素来使用。子表达式必须用()括起来。

上面的改为(&nbasp;){2}就可以了。

1.正则逼表达式是只是一种工具,还是一种不懂数学运算的工具。你的数学再好这里也帮不上什么忙。
那么如何去表示一个IP?
0.0.0.0-255.255.255.255

假设写成:
([\d{1,3}\.]){3}\d{1,3}

这样的话0-999都能匹配了。

怎么办?
0-255可以拆分成:
0-99      表示:\d{1,2}
100-199   表示:1\d{2}
200-249   表示:2[0-4]\d
250-255   表示:25[0-5]

0-255就可以表示成:
(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])

最终结果应该为:
0.0.0.0-255.255.255.255
表示为:
((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
分享到:
评论

相关推荐

    <<正则表达式系统教程>>

    《正则表达式系统教程》是一部深入探讨正则表达式的权威指南,主要针对Java编程语言中的正则表达式使用进行详细讲解。正则表达式,简称为regex,是一种强大的文本处理工具,广泛应用于数据验证、搜索与替换、文本...

    Jmeter正则表达式扩展

    - **非贪婪模式示例**:同样场景下,如果我们使用正则表达式`&lt;p&gt;(.*?)&lt;/p&gt;`,结果将会是`这是第一个段落。`,因为它尽可能少地匹配。 #### 四、JMeter中的应用 在JMeter中,正则表达式常用于HTTP请求的响应数据中...

    正则表达式--递归匹配与非贪婪匹配

    例如,在`&lt;script language='vbscript'&gt;&lt;/script&gt;`中,使用非贪婪匹配的正则表达式可以确保正确提取出`vbscript`作为`language`属性的值。 ### 结论 递归匹配和非贪婪匹配都是正则表达式中非常重要的特性。递归...

    正则表达式测试工具C#版(src)

    - `Regex.Split(input, pattern)`:根据正则表达式模式将输入字符串分割成多个子字符串。 4. **本项目特性** - 查找功能:用户可以输入待检测的文本和正则表达式,工具会返回所有匹配的结果。 - 替换功能:除了...

    正则表达式(Deelx版)|正则表达式(Deelx版)支持库

    正则表达式(Deelx版)是一种强大的文本处理工具,它允许程序员和用户通过预定义的模式来匹配、查找、替换或者分析字符串。Deelx版是专门为提高正则表达式性能和功能而设计的一个支持库,适用于各种编程语言和应用场景...

    正则表达式教程

    &lt;br&gt; 正则表达式的限定符有:&lt;br&gt; &lt;br&gt;&lt;br&gt;字符 描述 &lt;br&gt;* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 &lt;br&gt;+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及...

    易语言正则表达式文本替换

    例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...

    java正则表达式.zip

    - `replaceAll()`: 使用正则表达式替换所有匹配的部分。 - `replaceFirst()`: 只替换输入字符串中的第一个匹配部分。 **4. 正则表达式语法** Java正则表达式遵循Perl5的语法,包括元字符(如`.`, `^`, `$`, `*`, `+...

    C++ 正则表达式 使用手册 源代码

    C++中的正则表达式是通过标准库 `&lt;regex&gt;` 提供的,这使得在C++程序中处理文本和模式匹配变得十分便捷。本手册聚焦于如何有效地利用C++的正则表达式功能,以实现高效且灵活的字符串操作。下面我们将深入探讨C++正则...

    强大的正则表达式生成工具 C#版

    6. **教程和文档**:提供详细的正则表达式使用指南和C# API参考,帮助用户学习和理解正则表达式。 7. **版本控制**:保存和加载正则表达式模式,便于项目管理。 8. **错误检查**:检测并提示正则表达式中的语法...

    VB 正则表达式 使用详解

    例如,可以使用正则表达式来测试字符串的某个模式,替换文本、根据模式匹配从字符串中提取一个子字符串等。 使用正则表达式可以带来以下优势: * 提高字符串处理的效率和灵活性 * 实现数据有效性验证 * 实现文本...

    通过正则表达式生成数据

    在本主题中,我们将深入探讨如何使用正则表达式来生成满足特定条件的随机数据。这在数据测试、生成假数据或者模拟真实场景时非常有用。 一、正则表达式基础 1. **基本元素**:正则表达式由一系列字符和特殊符号...

    正则表达式学习资料以及练习项目代码很多

    - **编译正则表达式**:使用`re.compile()`函数将正则表达式编译为`Pattern`对象,提高匹配速度。 - **模式方法**:`Pattern`对象提供`match()`、`search()`等方法进行匹配,以及`sub()`、`split()`等方法进行替换...

    VC使用正则表达式Demo

    在VC++中,可以使用Boost库或者标准库`&lt;regex&gt;`来实现正则表达式。Boost库是一个广泛使用的C++库,提供了`boost::regex`类。而C++11引入了标准库`&lt;regex&gt;`,提供了`std::regex`和相关的函数,如`std::regex_match`、...

    使用正则表达式拆分字符串

    在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面将详细阐述正则表达式的概念、语法以及如何在不同编程语言中实现字符串的拆分。 1. 正则表达式基础 - **模式...

    易语言正则表达式类匹配中文

    1. **创建**:创建正则表达式对象是使用正则表达式的第一步。在易语言中,这通常涉及到初始化一个类实例,并传入相应的正则表达式字符串。例如,`创建正则表达式`函数可以用来创建一个正则表达式对象,用于后续的...

    Oracle数据库正则表达式

    3. REGEXP_SUBSTR:返回与正则表达式匹配的子字符串 4. REGEXP_REPLACE:搜索并且替换匹配的正则表达式 使用正则表达式可以编写简洁、强大的 SQL 语句,提高数据处理的效率和灵活性。熟练使用正则表达式可以帮助...

    正则表达式列举 代码 项目中直接使用

    正则表达式:`/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*)\/&gt;/` 这个复杂的正则表达式用于匹配HTML标签。它通过捕获组(`(.*)`)来匹配起始标签`&lt;tag&gt;`和结束标签`&lt;/tag&gt;`,同时确保起始和结束标签相匹配。另外,它也匹配自闭合标签,如...

    Delphi 10.4 最新版正则表达式(TRegExpr)源码

    正则表达式易于使用,功能强大,可用于复杂的搜索和替换以及基于模板的文本检查。这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索...

    delphi xe 10 正则表达式

    4. **Split**: 这个方法用于根据正则表达式将字符串分割成多个子字符串。 四、正则表达式语法 Delphi XE10的正则表达式语法遵循ECMAScript标准,支持各种常见的元字符和量词,如: - `.`:匹配任意单个字符,除了...

Global site tag (gtag.js) - Google Analytics