`

正则表达式

阅读更多
在js中,string作为一个很重要的对象,它的使用方法也很多。或者说伴随着他的一些方法和函数也很多。在这里主要说明正则表达式。以及一些中级的操作技巧。
正则表达式的定义:
正则表达式是一种方法。是一种定义字符模式的方法。简单点而言就是当要检索某个文本时,可以使用一种模式来描述要检索的内容。
有了它之后,我们就可以更简单的去拆分,查找,替换字符串中与模式字符匹配的字符。
需要说明的是,RegExp是js中的内置对象,就像String和Array。而在js中正则表达式的使用正好就是通过这个对象来使用的。
RegExp对象的创建:
1:
var myRegExp = /\b'|'\b/;

其中的/和/代表着正则表达式的开始和结束。就像引号表示字符串的开始和结束一样。
2:
var myRegExp = new RegExp ("\\b'|'\\b ")

这是两种指定正则表达式的方法,第一种方法在js中更加简洁高效。在日常的编程中一般使用第一种。
接下来是正则表达式的一些简单的用法:
在String对象中,很多方法都把正则表达式当做参数,但是RegExp作为一个对象有它自己的方法和属性。
在js中RegExp通常被split();match();replace();search();作为参数。下面的例子是用replace方法和正则表达式实现的一个简单的文本替换。
var myString = 'Paul,Puala,Pauline,paul,Paul';
var myRegExp = /Paul/;
myString = myString.replace(myRegExp,'Ringo');
console.log(myString);

上述的程序是把Paul换成Ringo,replace()方法接受两个参数第一个是RegExp参数用来查找和替换的模式,另一个是替换的文本。
注意:此时的运行结果是:Ringo,Puala,Pauline,paul,Paul
这是因为:RegExp默认仅查找与模式匹配的第一个子字符。找到即停止。这一特性非常重要。
因为这里想要达到的目的是全局查找,全局匹配。全局替换。所以就来说明一下RegExp这个对象。
语法:
/pattern/attributes

new RegExp(pattern, attributes);

pattern 参数是一个字符串,指定了正则表达式的模式或其他正则表达式;
attributes是一个可选的字符:包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。
正则表达式的元字符(拥有特殊含义的字符):
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
需要注意的是大小写。因为大小写字符的含义大相径庭!!!
下面是正则表达式的量词:
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
在日常使用中有下面的一些重复字符:
{n}  表示前一项出现n次
{n,}  前一项出现n次或者n次以上。
{n,m}  前一项至少出现n次,最多出现m次
?   前一项出现0次或者1次
+   前一项出现1次或者多次
×  前一项出现0次或者多次
还有一些方括号(用于查找某个范围内的字符):
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
还有一些常用的位置字符:    
^      模式必须位于字符串的开头,如果是多行字符串,模式就位于一行的开头,对于多行文本(既包含回车符的字符串),在定义正则表达式的时候,需要用/myreg ex/m设置多行标记。
$   模式必须位于字符串的结束位置,如果是多行字符串,模式就位于一行的结束位置,对于多行文本(即包含回车符的字符串,)在定义正则表达式的时候,需要使用/myreg ex/m设置多行标记。
\b   匹配单词分界位置。即单词字符与非单词字符之间的位置
\B   匹配非单词分界位置。


          RegExp 对象的方法
RegExp 对象有 3 个方法:test()、exec() 以及 compile()。
test() 方法检索字符串中的指定值。返回值是 true 或 false。
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。

    RegExp 对象属性
global RegExp 对象是否具有标志 g。
ignoreCase RegExp 对象是否具有标志 i。
lastIndex 一个整数,标示开始下一次匹配的字符位置。
multiline RegExp 对象是否具有标志 m。
source 正则表达式的源文本。

支持正则表达式的 String 对象的方法

search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。






分享到:
评论

相关推荐

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    在Qt框架中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员以结构化的方式匹配、查找、替换或验证字符串。本项目针对Qt的lineEdit组件,通过正则表达式实现了输入限制功能,使得lineEdit...

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    C语言正则表达式库

    C语言正则表达式库是用于在C编程环境中处理和匹配正则表达式的软件库。这个库名为PCRE(Perl Compatible Regular Expressions),正如其名,它与Perl语言中的正则表达式语法高度兼容,提供了丰富的功能和强大的匹配...

    易语言正则表达式文本替换

    例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...

    pb 使用正则表达式源码pbregexp

    标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...

    Java使用正则表达式提取XML节点内容的方法示例

    Java使用正则表达式提取XML节点内容的方法示例 Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作...

    易语言正则表达式匹配中文

    在易语言中,正则表达式是进行文本处理、数据提取和搜索的关键工具,尤其在处理中文字符时显得尤为重要。本文将深入探讨易语言中的正则表达式匹配中文的原理、方法以及应用。 正则表达式(Regular Expression)是一...

    正则表达式在数据库查询中的应用

    ### 正则表达式在数据库查询中的应用 #### 引言 在数据库管理与应用程序开发中,查询数据是一项常见的任务。传统的SQL查询虽然强大,但在处理复杂查询时可能存在一定的局限性,尤其是涉及到文本数据的模式匹配时。...

    正则表达式调试工具

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索替换和文本处理等领域。正则表达式调试工具是开发人员用来测试和优化这些模式的重要辅助工具。本文将...

    VC、VC++,MFC 正则表达式类库

    正则表达式类库则为VC++和MFC的开发者提供了对正则表达式功能的支持。 "VC、VC++,MFC 正则表达式类库"指的是在MFC中实现或集成的正则表达式处理模块。这个库通常包含一系列的类和函数,允许程序员编写符合特定模式...

    易语言正则表达式类匹配中文

    在易语言中,正则表达式类是一个非常重要的工具,用于处理字符串的模式匹配和查找。在处理中文文本时,这个功能尤为关键,因为中文字符的编码和处理方式与英文有所不同。 正则表达式是用于匹配字符串模式的一种强大...

    正则表达式测试工具C#版(src)

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...

    c++写的正则表达式验证工具

    在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。C++作为一种通用编程语言,虽然标准库中没有内置正则表达式支持,但通过第三方库如Boost,我们可以很方便地在...

    通过正则表达式生成数据

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串的模式匹配。在本主题中,我们将深入探讨如何使用正则表达式来生成满足特定条件的随机数据。这在...

    C#正则表达式大全, 判断字符串是否为正整数,中文,英文.....

    C# 正则表达式大全 正则表达式是指用来描述字符串模式的表达式,通过使用正则表达式,我们可以轻松地实现字符串的匹配、验证、提取和替换等操作。在 C# 中,我们可以使用 System.Text.RegularExpressions 命名空间...

    C正则表达式库

    在IT领域,正则表达式库是用于处理字符串匹配、搜索和替换的重要工具。在C语言环境中,GUN(GNU)提供了一个官方的正则表达式库,这使得C程序员可以方便地在他们的应用程序中利用正则表达式的强大功能。本篇文章将...

    易语言正则表达式取网址和名称

    在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在本案例中,“易语言正则表达式取网址和名称”指的是使用易语言这一编程环境,结合正则表达式技术来从文本中...

    根据正则表达式生成满足正则的数据

    在IT领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配字符串模式。它们广泛应用于数据验证、搜索、替换等操作。本话题主要关注如何根据正则表达式生成满足该模式的数据,这在测试、数据...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

Global site tag (gtag.js) - Google Analytics