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

Java 正则表达式 中的 任意字符

阅读更多
原来正则表达式中的"."代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试"[.\\n]"不生效,可以使用"\\s\\S"代表,即所有空字符+所有非空字符。
注:为了适用于java程序,上述表达式已把斜杠替换成双斜杠。

今天还发现一个问题,正则表达式的贪婪型和勉强型的不同。

在匹配字符串"[tab]one[tab][tab]two[tab]"时,若使用贪婪型的表达式"\\[tab\\](.*)\\[tab\\]",将只能匹配出一个tab,其group(1)的结果是"one[tab][tab]two"。这是因为在匹配"(.*)"这一段表达式的时候,贪婪型会把中间的两个"[tab]"也吃进去。

换成非贪婪表达式"\\[tab\\](.*?)\\[tab\\]"后(".*"后面加了一个"?"),表达式遇到第二个"[tab]"时,不会把它当做是".*"的匹配而吃进去,而是把他当做第一个tab的结尾。故非贪婪表达式会得到两个匹配:[tab]one[tab]和[tab]two[tab]。
分享到:
评论

相关推荐

    JAVA正则表达式的应用

    JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...

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

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

    正则表达式匹配任意字符(包括换行符)的写法

    今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是...

    java 正则表达式

    JAVA正则表达式语法(转)正则表达式语法正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式示例表达式 ...

    正则表达式

    除此之外正则表达式中有一些特殊的字符,这些字符在正则表达式中有特殊的用途,如前面介绍的反斜线(\),如果需要匹配这些字符,必须首先将这些字符转义,也就是再前面添加一个反斜线(\).正则表达式中的特殊字符: 1)...

    精通正则表达式~~~

    用点号匹配任意字符... 11 多选结构... 13 忽略大小写... 14 单词分界符... 15 小结... 16 可选项元素... 17 其他量词:重复出现... 18 括号及反向引用... 20 神奇的转义... 22 基础知识拓展... 23 语言...

    Java中使用正则表达式处理文本数据

    本文将介绍如何在Java中使用正则表达式来处理文本数据。正则表达式就是一个字符串,但和普通的字符串不同的是,正则表达式是对一组相似字符串的抽象,如下面的几个字符串: a98b c0912d c10b a12345678d ab ...

    正则表达式经典实例中文版 (美)高瓦特斯

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,《正则表达式经典实例》对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括C#、Java、JavaScript、Perl、PHP、...

    正则表达式经典实例

    2.4 匹配任意字符 2.5 匹配文本行起始和/或文本行结尾 2.6 匹配整个单词 2.7 Unicode代码点、属性、区块和脚本 2.8 匹配多个选择分支之一 2.9 分组和捕获匹配中的子串 2.10 再次匹配先前匹配的文本 2.11 捕获...

    Java中的正则表达式 -- 示例详解

    自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。 因为正则表达式是一个很庞杂的体系,所以我仅例举些入门的概念,更多的请参阅相关书籍及自行摸索。 \\ 反斜杠 \t 间隔 ('\u0009...

    正则表达式去除中括号(符号)及里面包含的内容

    ps:下面看下利用正则表达式提取括号内内容 比如现在要提取 中华人们共和国,简称(中国) 这句话中括号里的“中国” import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { ...

    常用的正则表达式大全(数字、字符、固定格式)

    Java正则表达式过滤出字母、数字和中文 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时,...

    正则表达式经典实例.pdf

    2.4 匹配任意字符 2.5 匹配文本行起始和/或文本行结尾 2.6 匹配整个单词 2.7 Unicode代码点、属性、区块和脚本 2.8 匹配多个选择分支之一 2.9 分组和捕获匹配中的子串 2.10 再次匹配先前匹配的文本 2.11 捕获和命名...

    JAVA正则表达式入门

    众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时 又比较复杂,如果用纯编码方式解决,往往会浪费...因此,学习及使用正则表达式, 便成了解决这一矛盾的主要手段

    java中常用的正则式

    正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本...

    正则表达式工具:JGsoft RegexBuddy v3.4.2 零售版(无需要注册激活)

    通过示例字符串和文件,快速测试任意正则表达式,防止在处理真实数据时发生错误。根据你使用的特定的编程语言自动在你的源代码中使用正则表达式代码片断。收集归档正则表达式例库以便将来重用。可以把RegexBuddy整合...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...

    leetcode 正则表达式匹配.java

    LeetCode问题10要求解决的是"正则表达式匹配"问题,具体来说是实现一个函数来判断一个字符串是否与一个给定的模式匹配,这里的模式可以包含.和*字符,其中.匹配任意单个字符,*表示它前面的字符可以出现任意次(包括...

    Java及python正则表达式详解

    正则表达式有元字符及不同组合来构成,通过巧妙的构造正则表达式可以匹配任意字符串,并完成复杂的字符串处理任务

Global site tag (gtag.js) - Google Analytics