`
richie.lee
  • 浏览: 29256 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java正则式简介(2)

阅读更多

正则式解析算法

      NFA(不确定的有穷自动机):时间复杂度O(|N|*|x|)|N|表示NFA的状态数, |x|表示匹配串的长度。

      DFA (确定的有穷自动机):时间复杂度O(nlogn) ,nDFA的状态数。速度明显比NFA要高。

      避免使用类似(a|b)*a(a|b)(a|b)…(a|b),包含了n-1(a|b)的正则表达式。为什么?

正则式的强大工具: Jflex

 

正则式优化

      减少回退次数
java.util.regex
包使用NFA.正由于使用了这个算法,对于某些正则式性能会比较差,因为,NFA对于每个节点状态有多个出口状态,有可能利用回退策略尝试其他节点状态。
考虑下面的例子:正则表达式是“scored|ared|oringx”,输入字符串是“scared”

               优化:例如将“(abcd|abef)”替换为“abcd|ef)”。

      Pattern.compile()编译,代替直接使用Pattern.matches()

      通过调用reset()方法对不同的输入字符串重复使用Matcher对象

      考虑选择的顺序,要将比较常用的选择项放在前面.例如,如果XY使用频率高,则”w(X|Y)””w(Y|X)”要好得多。

      获取每次使用引起小损失的分组。如果你实际并不需要获取一个分组内的文本,那么就使用非捕获分组。例如使用“(?:X)”代替X)”。

       

分享到:
评论

相关推荐

    java正则式学习

    Java正则表达式是Java语言中用于处理字符串的强大工具,源于早期对神经网络模型的研究,由数学家Stephen Kleene提出并应用于Ken Thompson的计算搜索算法,最终在Unix的qed编辑器中得到应用,并逐渐成为现代文本编辑...

    java正则表达式详解(PDF)

    Java正则表达式是Java编程语言中的一个强大工具,用于处理字符串模式匹配和搜索替换操作。它是基于Perl和POSIX正则表达式的实现,提供了一种灵活且强大的方式来处理文本数据。本文件"java正则表达式详解(PDF)"深入...

    java正则实现解析算术表达式 (仅限+-*/和括号)

    java正则实现解析算术表达式 (仅限+-*/和括号)

    Java正则表达式的总结和一些小例子

    实例一:正则式是最简单的能准确匹配一个给定 String 的模式,模式与要匹配的文本是等价的。静态的 Pattern.matches 方法用于比较一个 String 是否匹配一个给定模式。 实例二:使用正则表达式来匹配某个特定的字符...

    java中常用的正则式

    正则表达式 - 简介 正则表达式 - 语法 正则表达式 - 元字符 正则表达式 - 运算符优先级 正则表达式 - 匹配规则 正则表达式 - 示例 正则表达式 - 在线工具 正则表达式 – 简介 正则表达式 – 元字符 正则表达式 - ...

    java 字符串 正则表达式 详细实例代码

    本篇将深入探讨Java中的字符串、正则表达式及其在实际编程中的详细实例代码。 1. **字符串基础** - Java中的字符串是不可变的,这意味着一旦创建了字符串对象,就不能更改其内容。这由`final`关键字确保,提高了...

    Java正则表达式1

    Java正则表达式1 Java正则表达式是Java语言中的一种模式匹配技术,用于字符串的查找、验证和提取。Java正则表达式基于 Perl5 regular expression syntax,提供了强大的字符串处理功能。 在Java中,正则表达式是...

    Java正则表达式详解

    正则表达式,又称正规表示式或正则式,是一种由特殊字符组成的字符串,用于定义在文本搜索中匹配特定模式的规则。在Java中,正则表达式被广泛应用于字符串处理,如查找、替换、分割等操作。 在Perl、PHP、Python等...

    正则表达式傻瓜式宝典

    2. **元字符与转义**:元字符在正则表达式中具有特殊含义,如.表示任意字符,但如果你想匹配实际的".",就需要使用转义符\进行转义。书中会详细解释哪些字符是元字符,以及如何正确使用转义。 3. **预定义字符类**...

    java正则表达式验证函数

    Java正则表达式验证函数是Java编程中用于检查字符串是否符合特定模式的一种工具。在Java中,正则表达式(Regular Expression)是一种强大的文本处理工具,可以用来匹配、查找、替换等多种操作。这个函数的目的是简化...

    正则式工具(自动生成正则表达式)

    正则式,全称为“正则表达式”,是编程领域中一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过一系列特定的字符和语法构建模式,可以高效地处理各种复杂的文本匹配任务。在软件开发、数据处理、...

    正则式.pdf 正则式.pdf

    ### 正则表达式基础知识与Java中的应用 #### 一、正则表达式基础知识 **1.1 句点符号** 正则表达式中的句点符号`.`是一种通配符,它可以匹配任何单个字符(除了换行符)。例如,如果你想要匹配所有以“t”开头...

    正则表达式自动生成器 V2.0.0.1 官方多语版

    1. **向导式界面**:对于不熟悉正则语法的用户,该工具可能提供了一个友好的向导,逐步引导用户构建复杂的正则表达式。 2. **实时预览**:用户输入正则表达式后,工具会立即在文本框中显示匹配结果,有助于快速调试...

    java正则表达式详解.pdf

    Java正则表达式是Java语言中用于处理文本和模式匹配的重要工具。正则表达式,又称正规表达式或正则式,是一种模式匹配语言,它由特定字符构成的字符串,用于定义查找字符串的模式。在Java中,正则表达式支持多种特性...

    Java正则表达式NFA图形算法

    内容索引:Java源码,算法相关,正则表达式,java算法,NFA 这个编译实验把一个正则表达式转化为不确定的有穷自动机NFA算法,有兴趣的朋友可以看看哦。  正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符...

    正则表达式转DFA

    Java实现的这个项目提供了一个直观的方式去理解这一转换过程,并通过可视化结果加深对正则表达式和DFA之间关系的理解。源代码文件中应该包含了具体的实现细节,包括类的设计、方法的编写以及如何调用Graph库进行绘图...

    regex正则表达式插件

    2. **验证与测试**:提供一个交互式的测试面板,用户可以输入正则表达式并实时查看匹配结果,帮助调试和优化表达式。 3. **代码辅助**:为编辑器添加代码补全功能,提供常用的正则表达式模板,减少手动输入的错误。 ...

    java正则表达式

    正则表达式,又称正规表示式或正则式,是一种模式匹配语言,它由特定字符构成的字符串组成,用于查找、替换或者提取符合特定规则的文本。在Java中,虽然标准库在早期版本并未内置强大的正则表达式引擎,但随着Java的...

    完整正则式使用大全

    ### 完整正则式使用大全 #### 一、引言 正则表达式是一种强大的文本处理工具,广泛应用于各种编程语言中,如ASP.NET、Java、PHP等。本文档全面介绍了常用正则表达式的使用方法及其原理,帮助读者更好地理解和运用...

Global site tag (gtag.js) - Google Analytics