首页 > 其他分享 >正则表达式

正则表达式

时间:2022-11-15 12:23:31浏览次数:70  
标签:字符 正则表达式 元素 Matching Lesson Problem

正则表达式是一个非常强的功能.日常查找和替换数据都是非常好的.

工具

有一些工具 可视化正则表达式 和 表达式测试工具.也可以用sublime的查找和替换来进程测试.

正则表达式的语法

简单匹配

t:匹配t字符,其他字符也是类似

模糊匹配

.:任意字符(换行除外)

\w: a-zA-Z0-9_

\W: 除了\w以外的所有字符

\d:数字字符  0-9

\D:非数字字符

\s:空格字符  \t\n\f\r\p

\S:所有非空格字符

还有其他的\n\r\f\v\p\t

其中有一个逻辑是:如果\+大写字母是\+小写字母的反例

 

模块化(将多个字符变成一个整体元素)

():将多个字符用小括号括起来,这样能够变成一个整体单元来处理.支持嵌套

 

循环

+ :表示前面的元素重复出现1+次

*:表示前面元素出现任意次 0+次

?:表示前面的元素出现0or1次

{n}:表示前面的元素出现n次

{n,m}:表示前面的元素出现n到m次

?这个一般修饰在+*后面,表示降低这种循环的优先级,让后续的条件的优先级更高.

 

复用

() + \n : 正则表达式是从左到右进行解析的.可以在左侧使用()标记一个匹配元素.然后在表达式后侧使用 \n进行复用.这里需要借用模块化.

 

条件

?:表示 0,1次选择

[tT]:表示t和T任意匹配一个

(car|bus)car和bus任意匹配一个

(?=) or (?<=) or(?!) or (?!=)当遇到某种情况后停下来.

\b : 间隙: \w和\W之间的情况

\B: \w和\w \W和\W之间的情况

还有一种嵌套条件表达式很多语言的正则表达式不支持.

 

 

替换截取

()选中+$(n)进行重新排列和截取

 

练习题

https://regexone.com/

 

习题

Lesson 1: An Introduction, and the ABCs

abc.*

 

 

Lesson 1½: The 123s

.*?\d{3}.*

 

 

 

Lesson 2: The Dot

.*?\.

 

 

 Lesson 3: Matching specific characters

[cmf]an

 

 

 

 

Lesson 4: Excluding specific characters

[^b]og

 

 

 Lesson 5: Character ranges

 [A-C][n-p][a-c]

 

 

 

Lesson 6: Catching some zzz's

wazz+up$

 

 

Lesson 7: Mr. Kleene, Mr. Kleene

(aa)+b{0,4}c+$

 

 

 Lesson 8: Characters optional

\d{1,2} files? found\?

 

 

 Lesson 9: All this whitespace

\d.\s+abc

 

 

Lesson 10: Starting and ending

^(Mission:) successful

 

 

 

 Lesson 11: Match groups

(\w*).pdf$

 

 

 

Lesson 12: Nested groups

(\w{3} (\d{4}))

 

 

 

Lesson 13: More group work

(\d{4})x(\d{3,4})

 

 

Lesson 14: It's all conditional

I love (cats|dogs)

 

 

Lesson 15: Other special characters

The.*?\.$

 

 

进阶习题

Problem 1: Matching a decimal numbers

^-?\d+(,\d{3})*.?\de?\d*$

 

 

Problem 2: Matching phone numbers

1?\s?\(?(\d{3})[-\) ]?\d{3}[- ]?\d{4}

 

 

Problem 3: Matching emails

(.*?)(\+\w+)?@.+(.com)$

 

 

Problem 4: Matching HTML

<(\w+?)[\> ].*</\1>

 

 

 

Problem 5: Matching specific filenames

(.*?).(jpg|png|gif)$

 

 

 

Problem 6: Trimming whitespace from start and end of line

\s*(.*)

  

 

 

Problem 7: Extracting information from a log file

.*?.(\w+)\((.*?):(\d+)\)$

 

 

Problem 8: Parsing and extracting data from a URL

(.*?)://(.*?):?(\d+?)?/.*

 

 

标签:字符,正则表达式,元素,Matching,Lesson,Problem
From: https://www.cnblogs.com/xxuuzz/p/16891849.html

相关文章

  • C# 正则表达式Regex专题
    1、ReplaceC#执行一次替换,可以使用这则表达式来实现,正则的Replace有6中重载版本,可以指定替换次数Regex构造函数Regex(stringpattern)Regex(stringpattern,RegexOptio......
  • Python正则表达式入门
    Python正则表达式入门文章目录​​Python正则表达式入门​​​​1、在Python中使用正则表达式​​​​2、最基础正则表达式​​​​3、正则匹配函数​​​​正则表达式的字......
  • 【正则】964- 正则表达式的括号如何使用?
    最近再一次重温老姚大佬的《JavaScript正则表达式迷你书》,并将核心知识点整理一遍,方便复习。原书写得非常棒,建议看下原书啦。  地址:https://github.com/qdlaoyao/js-re......
  • Java用正则表达式提取字符串中的字母和数字
    最新碰到个需求,需要从一个字符串中提取所有的数字和字符串,花了一些时间研究了下正则和相关类库后解决了,特此记录下代码如下:publicStringextractNumAndLetter(Strings......
  • 正则表达式 string.replaceAll替换花括号 报错illegal repetition near index 0
    1Stringregex="(\\$|\\#)\\{[^{}]*\\}";2List<WatcherTaskAgentFileMapping>watcherTaskAgentFileMappingList=agentFileQueryDao.queryWatcherAgentFileList(......
  • Vue学习笔记之使用正则表达式提示Single character alternation in regex
    0x00概述在WebStrom中使用正则表达式,工具提示Singlecharacteralternationinregex 0x01问题Vue页面需要处理多选产生的列表,["a","b","c","d"]转换成如下......
  • 正则表达式
    语法java.util.regexpublicclassMain{publicstaticvoidmain(String[]args){Patternpattern=Pattern.compile("(\\d{3,4})\\-(\\d{7,8})");......
  • 使用正则表达式获取每个章节的url时,总是返回空列表,啥情况?
    大家好,我是皮皮。一、前言国庆期间在Python白银交流群【冰冰】问了一个Python网络爬虫的问题,提问截图如下:代码如下所示:二、实现过程这里【dcpeng】和【瑜亮老师】给......
  • 正则表达式(上)
    正则表达式字符类[abc]a、b或c(简单类)[^abc]任何字符,除了a、b或c(否定)[a-zA-Z]a到z或A到Z,两头的字母包括在内(范围)[a-d[m-p]]a到d或m到p:[a-dm-p]......
  • 正则表达式(下)
    正则表达式作用二:在一段文本中查找满足要求的内容本地爬虫和网络爬虫这一段我仅仅使用案列进行演示在此之前我们需要用到两个类:pattern,他是属于java.util.regex.Patte......