正则表达式详解

Java正则表达式【详解】 java正则表示式详解 阅读详情

一、构造函数

 

正则表达式构造函数: new RegExp("pattern"[,"flags"]);

参数说明:

pattern: 一个正则表达式文本

flags:   如果存在,将是以下值:

g:       全局匹配

i:       忽略大小写

gi:      以上组合

 

二、转义字符

 

在构造函数中,一些特殊字符需要进行转意(在特殊字符前加"/")。正则表达式中的特殊字符:

/       转意,即通常在"/"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后//b/,转意为匹配一个单词的边界。或表示对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"/"后,/a/*/ 将只匹配"a*"。

^  匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"

$       匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"

*       匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa

+       匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa

?       匹配前面元字符0次或1次,/ba*/将匹配b,ba

(x)     匹配x保存x在名为$1...$9的变量中

x|y     匹配x或y

{n}     精确匹配n次

{n,}    匹配n次以上

{n,m}   匹配n-m次

[xyz]   字符集(character set),匹配这个集合中的任一一个字符(或元字符)

[^xyz]  不匹配这个集合中的任何一个字符

[/b]    匹配一个退格符

/b      匹配一个单词的边界

/B      匹配一个单词的非边界

/cX     这儿,X是一个控制符,//cM/匹配Ctrl-M

/d      匹配一个字数字符,//d/ = /[0-9]/

/D      匹配一个非字数字符,//D/ = /[^0-9]/

/n      匹配一个换行符

/r      匹配一个回车符

/s      匹配一个空白字符,包括/n,/r,/f,/t,/v等

/S      匹配一个非空白字符,等于/[^/n/f/r/t/v]/

/t      匹配一个制表符

/v      匹配一个重直制表符

/w      匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[/w]匹配"$5.98"中的5,等于[a-zA-Z0-9]

/W      匹配一个不可以组成单词的字符,如[/W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

 

三、正则表达式对象的属性及方法:

预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext,rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字,并且,这两个名字指向同一个值。(JavaScript模拟perl的正则表达式)

 

正则表达式对象的属性:

 

$1...$9 如果它(们)存在,是匹配到的子串

$_      相当于input

$*      相当于multiline

$&      相当于lastMatch

$+      相当于lastParen

$`      相当于leftContext

$''   相当于rightContext

constructor      创建一个对象的一个特殊的函数原型

global        全局搜索(使用g修饰符)

ignoreCase      匹配时是否忽略大小写(使用i修饰符)

input        如果没有传递的字符串,这就是要搜索的字符串

lastIndex       最后一次匹配的索引

lastMatch           最后一个匹配的字符串

lastParen       最后一个括号括起来的子串

leftContext      最近一次匹配以左的子串

multiline       是否进行多行匹配(bool型)

prototype       允许附加属性给对象

rightContext     最近一次匹配以右的子串

source        正则表达式模式

lastIndex       最后一次匹配的索引

 

正则表达式对象的方法:

 

compile(pattern,[."g"|"i"|"gi"])       正则表达式比较

exec(string)        执行查找

test(string)        测试匹配

toSource              返回一个代表对象的字面值

toString              返回一个代表指定对象的字符串。重载Object.toString方法得到的

valueOf               返回指定对象的原始值。重载Object.valueOf方法得到

match(re)                  在一个字符串中寻找与一个正则表达式模式(re)的匹配

replace(re.replaceStr)          使用正则表达式(re)执行所需的替换

search(re)                      搜索与正则表达式(re)的匹配

split(re)                       根据正则表达式(re)对字符串进行分隔

 

例子

<script language = "JavaScript">

var myReg = /(w+)s(w+)/;

var str  = "John Smith";

var newstr = str.replace(myReg, "$2, $1");

document.write(newstr);

 

</script>

 

将输出"Smith, John"

 

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json 用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的) 阅读详情

相关推荐

Oracle监听配置

Oracle监听配置## 标题 选择“监听程序配置”,然后下一步。 选择重新配置,然后下一步/。 不用管,按下一步。 下一步。 选择“否”,下一步。 选择"本地net服务名配置",然后下一步。 选择“重新配置”,然后下一步。 服务名 是"Oracle",然后下一步。 主机为你的IP地址,在doc系统下通过"ipconfig"获取IP地址。然后输入,然后下一步。 选择“是,进行测试...

m0_46079215的博客 806

正则表达式中()、\1、$&、$1、?:、?=的含义

正则表达式中()、\1、$&、$1、?:、?=的含义

weixin_43512977的博客 4314

ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)

1、符号化显示: CAD数据加载进来有很多列表,包含了点【point】、线【polyline】、面【polygon】、标注数据【Annotation】等数据,本次实验我们需要用到的是面数据,也就是.dwgPolygong格式的数据。如下图所示: 把数据加载进来,然后在2处打开属性表,查看CAD数据的属性表,打开后可以发现【layer】图层表示就是地块的用地性质,它就是符号化显示的依据。 我们在数据上右键【属性】,打开图层属性,找到【符号系统】,选择类别中的【唯一值】,然后在【值字段】下拉选择【layer】,

yuanYW7556的博客 2万+

js正则表达式()和$1...$9的理解和使用

使用小括号和$1...$9来限制输入位数

愤怒无济于事 1万+

Camera mipi通信协议

MIPI(移动行业处理器接口),是的缩写。MIPI移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI,其中是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。

arvin_xiong的博客 3730

微信Dat文件转图片(文末含工具下载)

PC端微信dat图片转换为jpg格式

weixin_40704848的博客 8080

正则表达式中的$1的使用方法

<script type="text/javascript"> //正则表达式中的$1的使用方法,在replice中$1不需要加RegExp,但是$1需加引号。var str1='120' var str2='120pt' var str3='120px' var reg=/^(\d+)(pt|px|em)?/ alert(reg.exec(str3)...

weixin_30772105的博客 4285

Icarus Verilog和GTKwave使用简析

本简要介绍Icarus Verilog和GTKwave的使用,使用iverilog(Icarus Verilog)编译仿真verilog而使用GTKWave查看仿真数据波形下载安装 基本使用 iverilog使用 GTKWave使用 iverilog常用选项 使用库 注意

husipeng86的专栏 1万+

详解JMeter正则表达式提取器

应用场景:在一个线程组中,B请求需要使用A请求返回的数据,也就是常说的关联,将上一个请求的响应结果作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,其中最方便最常用的就是正则表达式提取器了。正则表达式提取器:允许用户从作用域内的sampler请求的服务器响应结果中通过正则表达式提取值所需值,生成模板字符串,并将结果存储到给定的变量名中。先上个图:各配置项介绍:APPly to:作用范围...

六月的风 6万+

【UVM实战】第七章:UVM中的寄存器模型(1)寄存器模型简介

寄存器模型简介~

悟已往之不谏 知来者之可追 2070

华为数字化转型之道 方法篇 第五章 视IT为投资,用产品思维管理IT

比较传统信息化和数字化转型下的IT系统特征,我们发现业务环境、IT能力、业务和IT的关系都发生了巨大的变化(见图5-1)从“管理系统”到“作业平台”。企业通常的做法是将线下的文档、流程线上化,IT系统是作为管理系统而存在的。而面向数字化,企业的业务作业、业务运营和决策、团队协同等业务动作已经和IT系统集成,IT系统逐步转变为作业系统。从“功能优先”到“体验优先”,如果要整体完成一项工作往往需要用户在不同系统间切换,费时费力。

沧海之巅的专栏 1093

21 正则表达式详解 | java正则表达式 | java验证手机号和邮箱格式的正则表达式

正则表达式在线生成工具 http://tools.jb51.net/regex/create_reg 正则表达式详解 https://www.cnblogs.com/mingxiastory/p/5426913.html java正则表达式 https://www.runoob.com/java/java-regular-expressions.html java验证手机号和邮箱格式...

shmily的博客 722

【Altium Designer】Off grid pin解决方法

​今天我画完原理图编译时,出现了太多的黄色(出现warning警告提示)Off grid pin警告,这个警告并不是原理图电气连接出问题了,而是元器件或器件PIN脚没有和栅格对齐造成的原因。再编译还是出现这个警告。 最后经过不断翻阅网上经验和实践,才最终解决,本经验详细记录了解决该警告的有效方法。 解决方案:以下是问题解决步骤... ​

夜半少年的博客 7547

【Linux】grep超级大详解,(拓展)正则表达式

本文详细解释了Linux命令中grep的用法。特别解释了grep匹配字符串的默认形式,常用的选项,正则表达式和拓展正则表达式的区别和运用方法。

m0_62079974的博客 4874

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java正则表达式详解_Logstash Grok详解

介绍Logstash的Grok 可以使蹩脚的、无结构,杂乱无章的的日志内容结构化需要注意的地方grok 模式是正则表达式,因此这个插件的性能受到正则表达式引擎影响,效率并不高。如果通过给定的匹配格式匹配不上,那么Kibana查询的时候会自动打上tag 为grok failed的标签。为什么通过正则表达式效率不高?个人见解:如果你的每一条日志都是无结构的,那么Grok 需要对每一条日志...

weixin_39525812的博客 461

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java正则表达式详解

一、正则表达式术语 1)元字符 : 非一般字符,具有某种意义的字符。如 : \bX : \b边界符, 以 X开始的单词 2)正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,"n"匹配字符"n"。"\n"匹配换行符。序列"\\"匹配"\","\("匹配"("。 ...

二十同学 12万+

python正则表达式详解

python正则表达式详解 说明: 关于内容:每个知识点尽量用简明方式表述,同时用示例说明,方便以后查阅,方便理解 关于访问:为避免浪费某些同学的时间,先列出所有的内容提要,如果符合要求,则请继续阅读,如果不符合要求,则可以离开。 关于权限:仅用于学习与分享,转载主注明出处。 内容提要: 一、正则表达式 1.1 对正则表达式的理解及python中正则使用的基本方法 1.1.1对正则表...

路在脚下 845

正则表达式 RegExp【详解】

常用正则表达式大全https://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 验证保留两位小数的正整数或0 /^([1-9]\d*|0)(\.\d{1,2})?$/ 验证手机号码,如13908653654 /^(1[3|5|7|8][0-9]{9})$/ 验证固定号码,如010-86551122或01086551122 /^((0\d{2,3})[-]?)(\d{7,8})([-]?(\d{3,}))?$/ 验证电话号码—手.

朝阳39的博客 4万+

Java——正则表达式详解

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

吴声子夜歌的博客 2万+

正则表达式语法详解

正则表达式语法详解 1、 基本语法表述 字符 描述 \ 转义字符。例如, “\n”匹配一个换行符。 “\\”匹配“\”。 ^ 匹配输入字符串的开始位置。 $ 匹配输入字符串的结束位置。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”

工作问题总结 1908

linux 正则表达式详解

声明 基础正则表达式 基础正则表达式语法 样例详解 查找特定字符串 使用list规则来进行查找 对行首和行尾字符进行限定 任意一个字符与重复字符 限定连续字符范围 拓展正则表达式 扩展正则表达式语法 样例详解 重复一个或一个以上的前一个RE字符 零个或者一个前一个RE字符 或 查找组 多个重复组判断 强调 声明 以下内容均总结自鸟哥私房菜这本书,如想详细了...

超人不会飞 1099
上一篇: 用正则表达式实现页面搜索
下一篇: 第三届“敏捷中国”开发者大会
weoln
博客等级 码龄21年 43粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值