`
- 浏览:
32731 次
-
一、字符组
1. [0123456789]匹配0-9这些数字,也可以用[0-9]来表示,这种表示方法的原理实际上是利用了字符对应的ascII码,0-9对应48-57,当然也可以[A-Z][a-z]来表示字母,其中A-Z对应65-90,a-z对应97-122,但是[0-z]这种表示方法最好不要用,因为很多符号之类的字符,比如";","<"等等之类的也在[0-z]的范围内。
例如:re.search("^[0-z]$", ":") != None # => True
2. "^", "$" 分别匹配字符的起始位置和结束位置
例如: re.search("^[0-9]", "2a") != None # => True
re.search("[0-9]$", "a2") != None # => True
re.search("[0-9]$", "2a") != None # => False
re.search("^[0-9]$", "23") != None # => False (起始位置和结束位置都匹配的话,只适用于整个字符串就是一个数字符号的情况下)
re.search("^[0-9]$", "2") != None # => True
3. 元字符是指 “-”, “[”, “]”, “^”, “$”等等,如果要取消元字符的特殊含义,就需要转义,就是在元字符前加上“\”,其中“-”紧接着“[”也可以表示在字符组内部使用“-”
例如:re.search("^[-09]", "3") != None # =>False
re.search("^[-09]", "-") != None # =>True
re.search("^[0\\-9]", "-") != None # =>True
4. 原生字符串的使用
Python提供了原生字符串,形式为r"string",例如:r"^[0\-9]$" == "^[0\\-9]$",在Python里面尽量多用原生字符串。
5. 排除型字符组
书写格式为:[^],在“[”后面紧跟一个“^”,表示在当前位置,匹配一个没有列出的字符,例如:
re.search(r"^[^0-9][0-9]$", "A8") != None # =>True
re.search(r"^[^0-9][0-9]$", "8") != None # =>False (排除型字符组必须要匹配一个字符)
另外,在排除型字符组中,紧跟在“^”之后的“-”不是元字符,例如:
re.search(r"^[^-09]$", "-") != None # => False
6. 字符组简记法
\d 表示[0-9] ,d代表digit
\w 表示[0-9a-zA-Z_],看清楚,后面还有个"_", w代表word
\s 表示[ \t\r\n\v\f], s代表space
\D是\d的排除型字符组
\W是\w的排除型字符组
\S是\s的排除型字符组
[\s\S]这种用法表示任意字符
二、量词
1.一般形式{n},例如\d{6}表示匹配6个数字
{m,n},例如\d{4,6}表示4到6个数字,记住逗号前后不要有空格
{m,],表示至少有m个
{0,n}, 表示之多有n个(在某些语言中也可是{,n})
2.常用量词
* 等价于{0,}
+ 等价于{1,}
? 等价于{0,1}
例如:re.search(r"^travell?er$", "traveler") != None # =>True
re.search(r"^travell?er$", "traveller") != None # =>True
re.search(r"^<[^>]+>$", "<body>") != None # =>True
re.search(r"^<[^>]+>$", "</table>") != None # =>True
re.search(r"^<[^>]+>$", "<>") != None # =>False
re.search(r"^\"[^\"]*\"$", "\"some\"") != None # =>True
re.search(r"^\"[^\"]*\"$", "\"\"") != None # =>True
注意: 如果查找‘customerId: ccheaaweb|3’中的ccheaaweb的话,可以这样匹配
re.search(r"customerId: (\w+)\|").group(1),记得要将+写在\w后面而不是括号后面
3.数据提取
re.search()如果匹配成功,返回一个MatchObject 对象,可以调用MatchObject.group(0)来获取表达式的结果
例如:
print re.search(r"\d{6}", "ad123456bc").group(0) = > 123456
另外一种提取数据的方法是re.findall(pattern, string)
例如:
print re.findall(r"\d{6}", "zipcode1:201203, zipcode2:100859")
= > ['201203', '100859']
4.点号
一般都认为"."可以匹配任意字符,但是有一个字符不能由点号匹配,那就是换行符\n
5.匹配优先量词(贪婪量词)和忽略优先量词(惰性量词)
匹配优先量词,在拿不准是否需要匹配的时候,优先尝试匹配,以被将来回溯。如之前的"*","+","?",{m,n},{m,},{,n} 就是匹配优先。
忽略优先量词,如果不确定是否要匹配,会选择不匹配的状态,在匹配优先量词后后加上"?"就是忽略优先。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本篇将深入探讨JavaScript正则表达式的基础知识、核心概念以及常用方法。 1. **基础概念** - **模式(Pattern)**:正则表达式的主体,定义了要匹配的字符序列。 - **分隔符(Delimiter)**:通常使用斜线 `/` 来...
本文将深入讲解正则表达式的基础知识,包括其概念、构成、常见元素以及进阶特性。 首先,正则表达式(Regular Expression)是一种模式匹配语言,用于定义一系列规则,用于检查输入的字符串是否符合这些规则。它主要...
### 正则表达式的基础知识 正则表达式是一种强大的文本处理工具,广泛应用于各种编程语言和工具中,用于字符串的查找、替换和提取。它由普通字符和元字符组成,能够描述特定的字符模式,进而对文本进行精确匹配。 ...
### 正则表达式基础知识详解 正则表达式(Regular Expression)是一种强大的文本处理工具,在数据提取、格式验证以及文本搜索替换等场景中发挥着关键作用。本文将深入解析正则表达式的各种元字符、量词、锚点、字符...
### C#正则表达式基础知识 #### 前言 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,包括C#。它允许开发者以灵活且高效的方式匹配、查找、替换文本字符串中的模式。对于软件开发人员而言,...
一、正则表达式基础知识 1. 基本元素: - 字符:匹配自身,如"a"匹配字符"a"。 - 范围字符:如[a-z],匹配任何小写字母。 - 通配符:.,匹配任意单个字符。 - 量词:*、+、?,分别代表零或多个、一个或多个、零...
### PHP正则表达式基础知识详解 正则表达式是一种强大的文本匹配工具,广泛应用于各种编程语言中,包括PHP。在日常开发中,正则表达式能够帮助我们进行字符串搜索、替换以及提取等操作,尤其在数据验证、文本解析等...
在C#编程语言中,字符串和正则表达式是两个非常重要的概念,广泛应用于数据处理、文本分析和验证。下面将详细阐述这两个主题的核心知识点。 一、C#字符串 1. 字符串基础:在C#中,字符串是不可变的对象,意味着...
正则表达式(Regular Expression,简称regex)是用于...通过熟练掌握上述基础知识,你将能够编写出高效且精准的正则表达式,大大提高文本处理的效率。在实际应用中,不断实践和积累经验,是成为正则表达式高手的关键。
总的来说,理解和掌握VB.NET中的字符串操作与正则表达式是提高编程技能,尤其是进行.NET Web开发的必备知识。通过深入研究这本参考手册,开发者不仅可以提升编程技巧,还能更好地应对各种复杂的文本处理挑战。
例如,如果要限制输入为数字、小写字母和特殊字符,可以使用如下正则: ```java InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, ...
这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`表示行尾,`*`表示零次或多次,`+`表示一次或多次,`?`表示零次或一次。字符类如`[abc]`匹配...
"正则表达式30分钟入门教程.url" 是一个链接文件,其扩展名 ".url" 表明它指向一个网页资源,可能是提供正则表达式基础知识的在线教程。这类教程通常会涵盖基础语法,如字符类、量词、分组、预查、边界等等,以及...
本篇文章将详细探讨与“正则表达式生成和检验工具”相关的知识点。 1. **正则表达式基础** - **模式匹配**:正则表达式是由字符和特殊符号组成的模式,用于匹配字符串中的特定模式。例如,`\d{3}-\d{4}`可以匹配...
书中首先介绍了正则表达式的基础知识,包括Regexpal工具的使用,如何匹配北美电话号码以及使用字符组匹配数字和字符等。然后,书中详细讲解了字符组的使用、字符组取反、并集与差集,以及POSIX字符组等相关概念。...
正则表达式中有很多特殊字符和量词,比如: - `/.../`:定义正则表达式的开始和结束。 - `^`:匹配字符串的开始。 - `$`:匹配字符串的结束。 - `s`:匹配任何空白字符。 - `S`:匹配任何非空白字符。 - `d`:匹配...
下面我们将深入探讨JS正则表达式的基础知识。 ### 1. 创建正则表达式 创建正则表达式有两种方式:字面量表示法和构造函数表示法。 - **字面量表示法**:使用`/pattern/flags`的形式,例如`/hello/i`表示不区分大...
通过学习这些基础知识和实例应用,你将能够熟练地在C#项目中使用正则表达式来处理各种字符串操作。不断实践和理解这些概念,将使你在处理字符串问题时更加游刃有余。记得查阅官方文档和在线资源,以便获取最新的信息...