`
YOUNG918
  • 浏览: 188817 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

正则表达式与模式匹配

    博客分类:
  • java
阅读更多

概念:

1,   模式匹配:就是检索与指定模式匹配的字符串。 Java 提供了专门进行模式匹配的类,在 java.util.regex

1)   建立模式对象:

使用 Pattern 类创建一个对象,称为模式对象。它调用类方法 compile String pattern )完成这一任务,参数 pattern 是一个正则表达式,称为模式对象使用的模式。若 pattern 指定的正则表达式有错, compile 方法将抛出异常, PatternSyntaxException

Pattern 类可以调用类方法 compile(String regex,int flag) 返回一个 pattern 对象,

2)   建立匹配对象

模式对象调用方法 matcher(CharSequence input); 返回一个 Matcher 对象 m ,称为匹配对象,参数 input 可以是任何实现了 CharSequence 接口的类创建的对象。 String StringBuffer 类都使用了 CharSequence 接口。

Matcher 对象可以使用 3 个方法寻找参数 Input 指定的字符序列中是否有与模式 pattern 匹配的子序列。

a)        public boolean find () ; 寻找 input 中第一个与模式 pattern 匹配的子序列,若 find ()返回 true,m 调用 start() end() 可以得到该匹配模式子序列在 input 中的开始位置和结束位置。

b)       public boolean matches ();判断 input 是否完全与 pattern 匹配

c)       public Boolean lookingAt ();判断从 input 开始位置是否有与 pattern 匹配的子序列。若返回 True, m 调用 start() end() 可以得到 lookingAt ()方法找到的匹配模式子序列在 input 中的开始位置和结束位置。

d)       public Boolean find int start );

e)        public string replaceAll String replacement );

f)        public String replaceFirst String replacement );

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class TestPattern {

    public static void main(String[] args) {

       Pattern p ;

       Matcher m ;

       String s1 = "0A1A2A3A4A5A6A7A8A9" ;

       p = Pattern.compile ( "\\dA\\d" );

       m = p.matcher(s1);

       System . out .println( "matches1:" +m.matches());

       while (m.find()) {

         String str = m.group();

         System . out .println( " " +m.start()+ " " +m.end()+ " 匹配模式子序列 :" );

         System . out .println(str);

       }

       String temp = m.replaceAll( "***" );

       System . out .println(temp);

       System . out .println(s1);

       m = p.matcher( "9A0A0A3" );

       if (m.matches()) {

         String str = m.group();

         System . out .println(str);

         System. out .println( "matches:" +m.matches());

         System. out .println( "find:" +m.find());

       } else {

         System . out .println( " 不完全匹配 !" );

       }

       if (m.lookingAt()) {

         String str = m.group();

         System . out .println(str);

       }

    }

}

分享到:
评论

相关推荐

    scala正则表达式与模式匹配.doc

    Scala 正则表达式与模式匹配 Scala 正则表达式是 Scala 语言中的一种强大工具,用于模式匹配和字符串处理。在 Scala 中,正则表达式可以通过两种方式创建:通过 `r` 方法直接将字符串转换成正则表达式对象,或者...

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

    这可以帮助我们了解有多少个部分符合正则表达式模式。 5. **取匹配文本**:这会返回整个匹配的文本,即原始文本中与正则表达式完全匹配的部分。 6. **取子匹配文本**:除了整个匹配外,正则表达式可能还包含捕获组...

    使用正则表达式的模式匹配

    ### 使用正则表达式的模式匹配 #### 正则表达式简介 正则表达式是一种用于描述文本模式的强大工具。在JavaScript中,正则表达式的功能主要通过`RegExp`类实现。这种工具允许开发者进行复杂的模式匹配操作,比如...

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

    ### 正则表达式——递归匹配与非贪婪匹配 #### 一、递归匹配 在正则表达式中,递归匹配是一个重要的概念,它主要用于处理那些具有嵌套结构的数据,例如数学公式中的括号匹配或HTML标签的匹配。 ##### 1.1 嵌套...

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

    这个命令接受两个参数:一个是待检测的字符串,另一个是正则表达式模式。 对于匹配中文,我们需要了解中文字符的编码。在Unicode编码中,中文字符通常位于`U+4E00`到`U+9FFF`之间,也包括一些扩展区的汉字。因此,...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    正则表达式转换工具

    - 正则表达式模式构建:根据输入内容,生成相应的模式,例如,连续的数字可转换为`\d+`。 3. **正则表达式工具的功能** - 自动化转换:工具能自动识别输入内容并生成相应的正则表达式。 - 模式测试:提供测试...

    pb 使用正则表达式源码pbregexp

    1. **匹配**:检查输入字符串是否符合特定的正则表达式模式。 2. **查找**:在字符串中查找符合正则表达式的部分。 3. **替换**:用新的字符串替换匹配到的正则表达式部分。 4. **分割**:根据正则表达式将字符串...

    vb正则表达式实例(正则表达式测试程序)

    在VB.NET中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员通过模式匹配来处理字符串。这个“vb正则表达式实例”很可能是为了帮助开发者测试和理解正则表达式的工作原理而设计的一个应用...

    面试笔试常考之正则表达式和模式匹配

    正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,用于匹配字符串模式。在面试和笔试中,尤其是对于IT行业的技术职位,掌握正则表达式是必不可少的技能,尤其是在中兴、华为等知名...

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

    - `Regex.IsMatch(input, pattern)`:检查输入字符串是否符合给定的正则表达式模式。 - `Regex.Match(input, pattern)`:返回输入字符串的第一个匹配项。 - `Regex.Matches(input, pattern)`:返回输入字符串中...

    Lucene 使用正则表达式

    正则表达式是一种强大的文本模式匹配工具,广泛应用于字符串搜索和替换等场景。在Lucene中,可以通过`regexQuery`来利用正则表达式进行复杂条件的匹配,从而实现更精确的搜索需求。 #### regexQuery详解 `regexQuery`...

    VC、VC++,MFC 正则表达式类库

    1. `CRegEx`:这是MFC中的核心正则表达式类,用于表示一个正则表达式模式。它提供了构造、编译、匹配、替换等功能。例如,你可以创建一个`CRegEx`对象,用字符串初始化表达式,然后调用`Compile`方法来验证该表达式...

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

    - **模式匹配**:正则表达式的核心在于模式,它是由特殊字符和普通字符组成的字符串,用于描述一系列可能的输入。 - **元字符**:如`^`(行首)、`$`(行尾)、`.`(任意字符)、`*`(重复零次或多次)、`+`(重复...

    正则表达式在数据库查询中的应用

    ### 正则表达式在数据库查询中的应用 #### 引言 在数据库管理与应用程序开发中,查询数据是一项常见的任务。传统的SQL查询虽然强大,但在处理复杂查询时可能存在一定的局限性,尤其是涉及到文本数据的模式匹配时。...

    易语言正则表达式取网址和名称

    模式, "https?://[\w./]+" // 设置正则表达式模式 .如果 正则表达式对象.搜索(目标文本) = 1 // 搜索匹配的网址 .循环 遍历 结构体(正则表达式对象.匹配结果) .赋值 网址, 结构体(正则表达式对象.匹配结果).内容...

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    C语言正则表达式库

    正则表达式是一种强大的文本模式匹配工具,它能用来检查一个字符串是否符合某种预定义的模式。在C语言中,使用正则表达式库可以实现复杂的文本搜索、替换和分析操作,而无需编写复杂的字符串处理代码。PCRE库提供了...

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    当用户输入时,如果输入不符合预设的正则表达式模式,可以及时给出反馈,比如禁用提交按钮或者显示错误提示。 以下是一个简单的例子,展示了如何创建一个只允许输入数字的lineEdit: ```cpp #include #include ...

Global site tag (gtag.js) - Google Analytics