Java基础之一组有用的类——使用正则表达式搜索子字符串(TryRegex)
2013-11-24 16:11
776 查看
控制台程序。
正则表达式只是一个字符串,描述了在其他字符串中搜索匹配的模式。但这不是被动地进行字符序列匹配,正则表达式其实是一个微型程序,用于一种特殊的计算机——状态机。状态机并不是真正的机器,而是软件,专门用于解释正则表达式,根据正则表达式隐含的操作分析给定的字符串。
Java中的正则表达式功能通过java.util.regex包中的两个类实现:Pattern类定义了封装正则表达式的对象;Matcher类定义了封装状态机的对象,可以使用给定的Pattern对象搜索特定的字符串。
正则表达式只是一个字符串,描述了在其他字符串中搜索匹配的模式。但这不是被动地进行字符序列匹配,正则表达式其实是一个微型程序,用于一种特殊的计算机——状态机。状态机并不是真正的机器,而是软件,专门用于解释正则表达式,根据正则表达式隐含的操作分析给定的字符串。
Java中的正则表达式功能通过java.util.regex包中的两个类实现:Pattern类定义了封装正则表达式的对象;Matcher类定义了封装状态机的对象,可以使用给定的Pattern对象搜索特定的字符串。
import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Arrays; class TryRegex { public static void main(String args[]) { // A regex and a string in which to search are specified String regEx = "had"; String str = "Smith, where Jones had had 'had' had had 'had had's"; // The matches in the output will be marked (fixed-width font required) char[] marker = new char[str.length()]; Arrays.fill(marker,' '); // So we can later replace spaces with marker characters // Obtain the required matcher Pattern pattern = Pattern.compile(regEx); Matcher m = pattern.matcher(str); // Find every match and mark it while( m.find() ){ System.out.println("Pattern found at Start: "+m.start()+" End: "+m.end()); Arrays.fill(marker,m.start(),m.end(),'^'); } // Show the object string with matches marked under it System.out.println(str); System.out.println(marker); } }
相关文章推荐
- Java基础之一组有用的类——使用正则表达式查找和替换(SearchAndReplace)
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- java 基础,使用正则表达式从字符串中获取电话号码
- Java基础之一组有用的类——使用二叉树搜索算法搜索某个作者(TryBinarySearch)
- vi 中使用正则表达式搜索,替换字符串
- Java基础之一组有用的类——使用公历日历(TryCalendar)
- java-使用正则表达式截取字符串中的时间信息
- 提高你的Java代码质量吧:推荐在复杂字符串操作中使用正则表达式
- Java基础知识强化75:正则表达式之分割功能(字符串中的数字排序案例)
- 【转】java使用正则表达式去除字符串的html标签
- java 基础 简单正则表达式使用规则、Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类
- Java使用正则表达式及字符串操作,抽取网页信息
- java语言基础(60)——java正则表达式基础使用
- Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法
- java 使用正则表达式统计一个字符串中子字符串出现次数
- Java中使用正则表达式校验字符串
- 正则表达式基础及java使用
- 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文
- UEStudio 使用正则表达式搜索时提示 字符串'%s'的未找到