Java正则表达式之从入门到精通

java正则表达式从入门到精通 如果在XP下运行,正则表达式.exe需要安装环境包。 找不到的或者有任何使用问题可以留邮箱给我。 立即下载

Java正则表达式之从入门到精通
 

  如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。
  
  请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:
  
  data1.dat
  
  data2.dat
  
  datax.dat
  
  dataN.dat
  
  如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:
  
  data.dat
  
  data1.dat
  
  data2.dat
  
  data12.dat
  
  datax.dat
  
  dataXYZ.dat
  
  尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
  
  -------------------------------------------------------
  2.早期起源
  
  早期起源
  
  正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
  
  1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
  
  随后,发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson是Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed 编辑器。
  
  如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。
  --------------------------------------------------------
  3.使用正则表达式
  
  在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。
  
  使用正则表达式,就可以:
  
  1.测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
  
  2.替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
  
  3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
  
  例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。
  
  另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集,具有丰富的字符串处理功能。与 C 类似的 Visual Basic Scripting Edition 则没有这一能力。正则表达式给 Visual Basic Scripting Edition 的字符串处理能力带来了明显改善。不过,可能还是在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作
  
  4.正则表达式语法
  一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
  
  这里有一些可能会遇到的正则表达式示例:
  
  Visual BasicVBScript匹配 Scripting Edition
  
  /^/[ /t]*$/chr(34)^/[ /t]*$chr(34)匹配一个空白行。
  
  //d{2}-/d{5}/chr(34)/d{2}-/d{5}chr(34)验证一个ID号码是否由一个2位字,一
  个连字符以及一个5位数字组成。
  
  /<(.*)>.*<///1>/chr(34)<(.*)>.*<///1>chr(34)匹配一个 HTML 标记。
  
  下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
  
  字符描述
  
  /将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 chr(34)nchr(34)。'/n' 匹配一个换行符。序列 '//' 匹配 chr(34)/chr(34) 而 chr(34)/(chr(34) 则匹配 chr(34)(chr(34)。
  
  ^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '/n' 或 '/r' 之后的位置。
  
  $匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 '/n' 或 '/r' 之前的位置。
  
  *匹配前面的子表达式零次或多次。例如,zo* 能匹配 chr(34)zchr(34) 以及chr(34)zoochr(34)。 * 等价于{0,}。
  
  +匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 chr(34)zochr(34) 以及 chr(34)zoochr(34),但不能匹配 chr(34)zchr(34)。+ 等价于 {1,}。
  
  ?匹配前面的子表达式零次或一次。例如,chr(34)do(es)?chr(34) 可以匹配chr(34)dochr(34) 或 chr(34)doeschr(34) 中的chr(34)dochr(34) 。? 等价于 {0,1}。
  
  {n}n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配
  chr(34)Bobchr(34) 中的 'o',但是能匹配 chr(34)foodchr(34) 中的两个 o。
  
  {n,}n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 chr(34)Bobchr(34) 中的 'o',但能匹配 chr(34)fooooodchr(34) 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
  
  {n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, chr(34)o{1,3}chr(34) 将匹配 chr(34)foooooodchr(34) 中的前三个o。'o{0,1}'等价于'o?'。请注意在逗号和两个数之间不能有空格
  
  ?当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,},{n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的 匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 chr(34)oooochr(34),'o+?' 将匹配单个 chr(34)ochr(34),而 'o+' 将匹配所有 'o'。
  
  .匹配除 chr(34)/nchr(34) 之外的任何单个字符。要匹配包括 '/n' 在内的任何字符,请使用象 '[./n]' 的模式。
  
  (pattern)匹配pattern 并获取这一匹配。所获取的匹配可以从产生的Matches 集合得到,在VBScript 中使用 SubMatches 集合,在Visual Basic Scripting Edition 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '/(' 或 '/)'。
  
  (?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 chr(34)或chr(34) 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
  
  (?=pattern)正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配chr(34)Windows 2000chr(34)中的chr(34)Windowschr(34),但不能匹配chr(34)Windows3 .1chr(34)中chr(34)Windowschr(34)。
  预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
  
  (?!pattern)负向预查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows(?!95|98|NT|2000)' 能匹配 chr(34)Windows 3.1chr(34) 中的 chr(34)Windowschr(34),但不能匹配 chr(34)Windows 2000chr(34) 中的 chr(34)Windowschr(34)。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
  
  x|y匹配 x 或 y。例如,'z|food' 能匹配 chr(34)zchr(34) 或 chr(34)foodchr(34)。'(z|f)ood' 则匹配 chr(34)zoodchr(34) 或 chr(34)foodchr(34)。
  
  [xyz]字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 chr(34)plainchr(34) 中的 'a'。
  
  [^xyz]负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 chr(34)plainchr(34) 中的'p'。
  
  [a-z]字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
  
  [^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如, '[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
  
  /b匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er/b' 可以匹配chr(34)neverchr(34) 中的 'er',但不能匹配 chr(34)verbchr(34) 中的 'er'。
  
  /B匹配非单词边界。'er/B' 能匹配 chr(34)verbchr(34) 中的 'er 
 

对冲策略与马丁结合ea的编程实践(五)核心是把两个品种合成一个新品种 在外汇、数字货币、期货交易甚至赌博中,马丁策略、网格策略是最常用的策略,也是最容易被理解的策略,但是如何克服单边行情、极端行情,是使用马丁策略最为头疼的事情,如加大间距、加大资金量,只能缓解,并不能根本解决这样的情况,所以使用时大部分时候都心里没底。 有没有一种正确的思路,让行情控制在震荡范围以内呢,这是今天我要向大家分享的一个思路,那就是对冲。大家看下图: 大家可以看到欧美(EURUSD)和镑美(GBPUSD),这两个品种,大部分时候走势是一致的,那么我们有没有可能把他们两个品种进行一下合成,比如买0. 阅读详情

相关推荐

告别GIS软件!用R语言ggplot2+ggmapcn绘制出版级世界地图(附5种投影对比图)

本文提供了一份完整的实践指南,教你如何利用R语言及其强大的ggplot2生态系统,结合ggmapcn包,绘制出出版级的世界地图。文章详细对比了五种经典地图投影(如摩尔维德、罗宾森投影)的代码实现与视觉差异,并讲解了如何添加比例尺、指北针等专业元素,最终导出高清PDF,实现从数据分析到专业可视化的全流程代码化操作,彻底告别传统GIS软件。

p5l2m9n4o6q的博客 408

【Java正则表达式】从入门到精通:语法解析与实战技巧

正则表达式是文本处理的利器,Java通过java.util.regex包提供了强大的支持。本文将带你系统学习Java正则表达式的核心语法、常用方法及实战技巧,助你轻松应对字符串匹配、验证和提取等需求!

xiaoyu❅的博客 918

7-15 估值一亿的AI核心代码

函数封装,含一个字符串中的所有的某个字串全部替换成另一个的函数,还有判断是否独立的函数以上图片来自新浪微博。!

weixin_73529240的博客 601

正则表达式的快速入门及知识梳理(Java篇)

一个正在学正则表达式的程序员千万不要错过的一篇好文

wwx1255413402的博客 1182

【FPGA】AD9694调试注意事项

基于FPGA的AD9694设计及其注意事项,包括同步的设计注意事项

weixin_41246509的博客 2902

BH1750光强度传感器Stm32f103驱动(已测试ok)

1. 实验:Stm32f103 驱动 bh1750采集光照强度,串口打印采集到的数据。 2. 实验准备器材 开发版:stm32f103c8t6 器件:bh1750 GY-302 开发环境:win10,KILE4 下载程序的软件:FlyMcu.exe 串口调试助手:ComAssistant.exe 3. BH1750 的接线 VCC:5V或3.3V ...

weixin_53329977的博客 8928

Java学习教程,从入门到精通,Java 正则表达式知识点及案例代码(120)

正则表达式(Regular Expression,简称 regex)是一种用于描述字符串模式的强大工具。它可以用来进行字符串的匹配、查找、替换等操作。Java 提供了 `java.util.regex` 包来支持正则表达式。

qq_45746668的博客 1097

ILI9488 TFT屏驱动与触摸协同开发指南

TFT-LCD显示模块是嵌入式人机交互系统的核心外设,其工作原理依赖于专用显示控制器(如ILI9488)对GRAM显存的精确读写,并通过SPI等串行总线接收指令与图像数据。理解RGB接口时序、寄存器初始化流程及DC/CS信号控制逻辑,是实现稳定显示的基础技术前提;而四线电阻式触摸功能则需配合XPT2046类ADC控制器,通过独立SPI或模拟时序完成坐标采集。该方案兼顾低功耗、高集成与工程可移植性,广泛应用于工业HMI、仪器仪表及STM32F407等MCU平台的教学与产品开发。本文围绕3.5英寸320×480

weixin_33814090的博客 149

《Java基础篇-从入门到精通》

本视频课程主要包括Java基础、数组和字符串、面向对象基础、面向对象基础、集合、异常、数据流、线程、网络等

Geant4 案例分析(一): B1

本文是对Geant4 B1的案例分析,其中特定的功能不做介绍,而注重于各个文件的主要功能,以及它们组织的方式。

m0_51809467的博客 1582

手把手教你学simulink(11.6)--Simulink 航空航天场景:基于Simulink的飞机俯仰控制系统的数学模型

自动驾驶系统在航空航天领域具有重要应用,特别是在商业航空、军用航空和无人机等领域。PID控制器因其简单且有效的特性,被广泛应用于飞行控制。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试自动驾驶系统的控制器。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机俯仰角的PID控制器。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为PID控制器的设计提供了有价值的参考。希望这个实例能够为你的航空航天项目提供有用的指导。

MHD0815的博客 565

Java 正则表达式之从入门到精通

Java 正则表达式之从入门到精通关键词: 正则表达式语法   如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。    请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您

403

NX二次开发常用函数——从一个坐标系到另一个坐标系的转换(UF_MTX4_csys_to_csys )相同体坐标转化

本文介绍了在项目开发中实现坐标转换的方法,重点解析了两个关键函数UF_MTX4_csys_to_csys和UF_MTX4_vec3_multiply的使用。通过4个变换矩阵(transform1-4)实现工作坐标系与绝对坐标系之间的相互转换,并以圆柱体为例详细说明了坐标转换的具体实现过程,包括原点、X/Y轴方向的转换处理。相比之前采用的if-else判断方法,这种矩阵转换方式在代码复杂度和运行效率上都更具优势。

weixin_47753171的博客 600

Java正则表达式从入门到精通

正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Java中,正则表达式广泛应用于字符串处理、文件匹配、数据验证等领域。本文将带你从入门到精通Java正则表达式。一、正则表达式的基本概念。四、正则表达式的常用场景。

csbysj2020 648

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Java从入门到精通】Java 正则表达式

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。Java 提供了 java.util.regex 包,它包含了 Pattern 和 Matcher 类,用于处理正则表达式的匹配操作。

RL2698853114的博客 1309

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HoRain云--Java正则表达式:从入门到精通

本文介绍了正则表达式的基础概念和在Java中的应用,包括字符类、数量词、边界匹配、分组等核心语法。详细讲解了Java中Pattern、Matcher类的使用以及String类提供的正则相关方法。还介绍了反向引用、环视等高级功能,并提供了正则表达式优化建议。文章强调通过实践来掌握正则表达式,建议使用在线练习平台提升技能,同时注意代码可读性和性能优化。最后鼓励读者持续学习,不断提高正则表达式的应用能力。

2401_86544677的博客 743

java 正则 入门_JAVA从入门到精通-正则表达式

概述正则表达式(从字面上解释:正确的规则)主要用于操作字符串的数据转义字符所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。字符表所有的转义字符和所对应的意义:常见规则见API文档 –类 Pattern例:验证一个QQ号...

weixin_29699579的博客 226

Java正则表达式之从入门到精通[z]

from:www.linuxpk.com/43583.html   如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。   请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:   dat...

liudaoru - 悟 150

Java中的正则表达式:从入门到精通的秘籍

正则表达式(Regular Expression,简称regex)是一种用于匹配字符串模式的工具。在Java中,正则表达式被广泛应用于字符串的搜索、替换和分割操作。简单来说,正则表达式就是用一系列特殊符号来描述字符模式的强大工具。

weixin_46372265的博客 933

Java正则表达式:从入门到精通!

正则表达式是Java开发中的利器!本文从零开始,深入浅出地讲解正则表达式的语法、核心功能以及实际应用场景。通过闫工的专业视角,系统剖析字符串匹配、分组捕获等核心技术,并结合案例演示如何高效解决复杂问题。无论是开发实战还是面试,掌握这些知识都将让你如虎添翼!

yanpeng2580的博客 300

Java正则表达式入门:从零到精通的图文教程

最近在学Java正则表达式,发现很多教程要么太理论化,要么例子不够直观。最常用的功能,左侧输入正则表达式,右侧即时显示匹配结果。不用折腾环境,打开网页就直接写Java代码,内置的JDK版本切换也很方便。做了个交互式学习应用,边学边练效果特别好,分享下我的学习路径和实战经验。做完直接生成可分享的演示链接,朋友访问就能在线练习,不用教他们配环境。匹配"aabab"会得到整个字符串而非第一个"aab",需要改用。匹配"catalog"中的"cat",理解精确匹配概念。匹配"aaab"和"aaa"

EmeraldWolf23的博客 748

Java正则表达式从入门到精通:基础详解与实战进阶

正则表达式(Regular Expression)是一种基于特定语法规则的文本模式匹配工具,广泛应用于字符串验证、文本替换、数据提取等场景。在Java中,正则表达式通过java.util.regex包实现,核心类为Pattern和Matcher。

2401_86544677的博客 1223

[java入门到精通] 10 常用API , 正则表达式 , Collection集合

概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。概述 : java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。float,double 他们在存储及运算的时候,会导致数据精度的丢失。如果要保证运算的准确性,就需要使用BigDecimal。

2301_76721962的博客 1160

java正则表达式,零基础入门到精通,收藏这篇就够了

Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

leah126的博客 833

Java——正则表达式详解_java正则表达式,零基础入门到精通,收藏这篇就够了

Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

Javachichi的博客 811

java正则表达式语法大全,零基础入门到精通,收藏这篇就够了

n?b??{n,m}?

Javachichi的博客 943
上一篇: Java新手必读
下一篇: Java违例控制总结
CodingMouse
博客等级 码龄19年 82粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值