问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

java正则表达式详解

提问网友 发布时间:2024-04-12 06:40
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2024-04-12 09:51
js正则表达式是什么,怎么使用呢?不知道的小伙伴来看看小编今天的分享吧!
1、正则表达式简介:
普通方式:var reg=/表达式/附加参数
附件参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。
举例:
var reg=/a*b/;
var reg=/abc+f/g;
构造函数方式:var reg=new RegExp(“表达式”,”附加参数”);
举例:
var reg=new RegExp(“a*b”);
var reg=new RegExp(“abc+f”,”g”);
两者区别:
普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等:var reg=new RegExp(document.forms[0].exprfiled.value,”g”);
2、正则表达式
的操作:
表达式对象(RegExp)方法:
①exec(str)
,返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现,当然如果表达式中含有捕捉用的小括号,则返回的数组中也可能含有()中的匹配字符串,例如:
var regx=//d+/;
var rs=regx.exec(“3432ddf53”);
返回的rs值为:{3432}
var regx2=new RegExp(“ab(/d+)c”);
var rs2=regx2.exec(“ab234c44”);
返回的rs值为:{ab234c,234}
另外,如果有多个合适的匹配,则第一次执行exec返回一个第一个匹配,此时继续执行exec,则依次返回第二个第三个匹配。例如:
var regx=/user/d/g;
var rs=regx.exec(“ddduser1dsfuser2dd”);
var rs1=regx.exec(“ddduser1dsfuser2dd”);
则rs的值为{user1},rs的值为{rs2},当然注意regx中的g参数是必须的,否则无论exec执行多少次,都返回第一个匹配。后面还有相关内容涉及到对此想象的解释。
②test(str)
,判断字符串str是否匹配表达式,返回一个布尔值。例如:
var regx=/user/d+/g;
var flag=regx.test(“user12dd”);
flag的值为true。
String对象方法:
①match(expr)
,返回与expr相匹配的一个字符串数组,如果没有加参数g,则返回第一个匹配,加入参数g则返回所有的匹配
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.match(regx);
rs的值为:{user1,user3}
②search(expr)
,返回字符串中与expr相匹配的第一个匹配的index值。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.search(regx);
rs的值为:0
③replace(expr,str)
,将字符串中匹配expr的部分替换为str。另外在replace方法中,str中可以含有一种变量符号$,格式为$n,代表匹配中被记住的第n的匹配字符串(注意小括号可以记忆匹配)。
例子1:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值为:003userddd0045
例子2:
var regx=/u(se)r/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”$1”);
rs的值为:se3userdddse45
对于replace(expr,str)方法还要特别注意一点,如果expr是一个表达式对象则会进行全局替换(此时表达式必须附加参数g,否则也只是替换第一个匹配),如果expr是一个字符串对象,则只会替换第一个匹配的部分。
例如:
var regx=“user”
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值为: 0013userddduser345
④split(expr)
,将字符串以匹配expr的部分做分割,返回一个数组,而且表达式是否附加参数g都没有关系,结果是一样的。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.split(regx);
rs的值为:{3userddd,45}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

我被一个陌生人解除了qq关系 但是以前在消息记录里面有很重要的内容 但... ...别人用手机登录我的QQ能看到我给别人的聊天记录吗 手机qq4.2版与陌生人的聊天记录保留几天? 手机QQ聊天记录可以查看吗? ...杜春雨物理菁英班直播课的高清视频在线观看免费资源链接,跪求... ...初二升初三杜春雨物理直播目标班链接资源请问哪位大佬有分享给我谢谢... 谁有2020寒假初二杜春雨物理菁英班直播课的免费百度云资源链接可以... 东莞市洈乐机电设备有限公司怎么样? 东莞阿萨乐商贸有限公司怎么样? 螃蟹不能吃的部位 螃蟹不能吃的部位有哪些呢 我公司和其它几个公司共用一个地址,就是挂靠地址,税务会被其它公司连... ...百度网盘无删减完整版在线观看,原田知世主演的 ...不笑猫(2013)》百度云无删减完整版在线观看 ...百度网盘无删减完整版在线观看,小仓唯主演的 如何在一台手机上登录两个? 一个手机可以登两个吗 一个手机可以同时登陆两个吗? 北大附中河南分校用少数宏志生和高分复读生为筹码,大招特招29000元的... 北大附中河南分校复读怎么样? 北大附中河南分校到底好不好 万分之2.五是百分之多少 在工作场所被别人欺负怎么办? 友友们帮我想一个团队名字嘛。我们是旱冰轮滑的。要霸... 帮我起个群名称 国内的室内设计专业高校排名?湖南省的高二生,想学室内设计,哪几个大... 学室内设计的专业好吗? 想买台数控车床,怎么提问卖家好,怎么才能知道数车好坏。被大家... 长沙恒大名都怎样坐车去到哪里下?急急 高分 恒大名都到留芳宾馆怎么走 恒大名都到中街怎么走 苹果手机总有消息提示,可打开之后却没有任何消息,求大家帮忙,是咋回事... 清康熙帝有几个儿子 雍正做皇帝后康熙还剩几个儿子 上蔡中学是公办还是私办上蔡中学 深圳市福田人民医院怎么样 主动脉肺部夹层动脉瘤国内最先进的技术在哪·如何治疗·风险大不大... 孩子呕吐为什么不能喝奶粉 猫咪呕吐能喝羊奶粉吗 请问安徽省直卫生厅的待遇平均水平大约是多少? 煤体结构类型主要划分为哪几种?
Top