`
xtuhcy
  • 浏览: 142645 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正则表达式的完全匹配和部分匹配

    博客分类:
  • java
阅读更多

最近在开发gecco的开源爬虫时混淆了正则表达的部分匹配和完全匹配的概念,记录一下。

java的正则表达式有个很容易混淆的概念,部分匹配和完全匹配:

在Matcher类中有matches、lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下:

  • matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回False。但如果前部分匹配成功,将移动下次匹配的位置。
  • lookingAt:部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。
  • find:部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。

 

举个例子:

  • 模式串为:^http://temai.tuniu.com/([^/]*)/([^/]*)
  • 待匹配字符串为:http://temai.tuniu.com/weihuo/tours/s4-p1/

matches返回false,find返回true;

0
0
分享到:
评论

相关推荐

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

    5. **取匹配文本**:这会返回整个匹配的文本,即原始文本中与正则表达式完全匹配的部分。 6. **取子匹配文本**:除了整个匹配外,正则表达式可能还包含捕获组,这些是用括号定义的子模式。`取子匹配文本`可以获取...

    java正则表达式匹配工具

    例如,`matches()`方法会检查整个输入字符串是否完全符合正则表达式,而`find()`则会在输入字符串中查找第一个匹配的部分。 在Java中,正则表达式的语法相当丰富,包括但不限于: 1. 字符集:`[]`用来定义一组字符...

    wps表格excel正则工具,excel正则表达式替换/匹配/查找/搜索/提取数字

    让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel 正则工具」顾名思义,需要使用 “正则表达式(PCRE)” 的知识来进行操作,对于完全没有接触过正则的朋友也许有一定的入门门槛,但正则实在是太过强大...

    PB实现的正则表达式

    需要注意的是,由于PowerBuilder 11.5年代较久,其支持的正则表达式功能可能相对较弱,对于现代的复杂正则表达式语法可能不完全兼容。在使用时,开发者可能需要查阅相关的文档,或者考虑升级到支持更强大正则表达式...

    C#正则表达式完全手册

    该文档作为一个手册,提供了快速参考的各个部分,覆盖了字符转义、字符类、锚点、分组构造、量词、后向引用、选择构造、替换以及正则表达式的各种选项和其他构造等主题。 字符转义是正则表达式中一个重要的概念,...

    正则表达式大全 - 收集的最常用正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过预定义的模式来识别和操作字符串中的数据。以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则...

    C++ 正则表达式匹配工具源码

    2. **匹配操作**:`std::regex_match`和`std::regex_search`函数用于测试字符串是否与正则表达式完全匹配或部分匹配。前者只返回整个字符串是否匹配,后者则可以在字符串的任何位置寻找匹配。 3. **迭代器遍历**:`...

    正则表达式大全.docx

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。它由特殊字符(称为“元字符”)和普通字符组成,能够灵活地定义要查找的模式。以下是一些常见的正则表达式模式及其用途: 1. ...

    使用Java正则表达式分析处理日志

    3. **执行匹配**:调用`Matcher`对象的`find()`方法来查找匹配项,或者`matches()`方法检查整个输入是否与正则表达式完全匹配。 4. **处理匹配结果**:使用`group(int group)`方法获取匹配的子串,或者`start(int ...

    正则表达式匹配算法小结

    这种方法适用于大型文本和复杂的正则表达式匹配任务。 ### 总结 正则表达式的匹配算法是计算机科学中的一个重要研究领域,不同类型的算法各有优缺点。经典算法如Thompson的NFA模拟和DFA模拟提供了简单而有效的解决...

    qt正则表达式测试工具

    在Qt中,正则表达式(QRegExp)是用于文本模式匹配和搜索的强大工具。这个"qt正则表达式测试工具"显然是一个帮助开发者验证和调试正则表达式的实用程序。 正则表达式是一种特殊的文本字符串,用于描述复杂或重复的...

    c++写的正则表达式验证工具

    `boost::regex_match`和`boost::regex_search`是两个常用的函数,前者要求整个字符串必须完全匹配,后者则允许部分匹配。例如: ```cpp std::string input = "123abc"; if (boost::regex_match(input, reg)) { std...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    根据题目描述,我们需要构建一个正则表达式来匹配一段字符串,该字符串除了允许出现特定字符(例如下划线 `_`)之外,不允许包含任何其他特殊字符。这里的“特殊字符”通常指的是那些不在字母数字字符集范围内的符号...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    其中,“正则表达式主体”包含了用于描述模式的字符和符号,而“修饰符”用于控制匹配的行为,比如全局匹配、忽略大小写等。 #### 三、常用方法 JavaScript中提供了多种内置方法来操作正则表达式,包括但不限于`...

    测试正则表达式软件

    总的来说,正则表达式是Java编程中不可或缺的一部分,熟练掌握其用法可以提高代码的效率和可读性。测试正则表达式的软件是开发者的好帮手,它们提供了一个友好的界面来实践和调试正则表达式,使得这个过程变得更加...

    js_正则表达式全攻略

    ### 正则表达式在JavaScript中的应用全攻略 #### 一、正则表达式的概念及其在JavaScript中的重要性 正则表达式(Regular ...正则表达式是JavaScript编程中不可或缺的一部分,掌握它可以使代码更简洁、高效。

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    3. `fullmatch(pattern, string, flags=0)`: 检查整个字符串是否匹配`pattern`,如果完全匹配则返回匹配对象,否则返回`None`。 4. `findall(pattern, string, flags=0)`: 返回所有非重叠的匹配子串列表。 5. `...

    boost库中的正则表达式

    - `regex_match`:这个函数判断正则表达式是否完全匹配给定的字符序列`str`。如果整个序列被成功匹配,函数返回`true`,否则返回`false`。这通常用于验证文本是否符合特定格式。 - `regex_search`:与`regex_match...

    正则表达式(一)从初学到精通正则表达式

    正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。 特殊字符 对于文字字符,有 11 个字符被保留作特殊用途。他们是:[ ] \ ^ $ . | ? * + ( )这些特殊字符也被称作元...

Global site tag (gtag.js) - Google Analytics