一入js 深似海,从此 正则 是路人(高级——反向引用, 预搜索)

本文通过实例演示如何使用正则表达式匹配特定符号间的文本,包括获取两个特定符号间的所有内容及一个特定符号间的内容,并解释了正则表达式中前瞻断言的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

先把去年文章搬过来,原账号密码忘了,虽然就写了一篇

  1. 获取两特定符号之间文字

‘adc+1232-def+3-g+5-’.match(/([^±]+)(?=-)/g);//获取±之间的内容 [“1232”, “3”, “5”]


  1. 获取一个特定符号之间文字

(/!.*!/).exec(“test!user_mobile_default!b789cba9-80a6-4f89-b74b-dc7cda3ba5be”);

结果 :["!user_mobile_default!"]

(/!(.*)!/).exec(“test!user_mobile_default!b789cba9-80a6-4f89-b74b-dc7cda3ba5be”);

结果 :["!user_mobile_default!", “user_mobile_default”]

作为一个程序员,感觉自己是文盲。。。。。。

-------------------------------なんで,なんで--------手动分割一下--------------------------------------------------

(?=xxxxxx)
格式:"(?=xxxxx)",在被匹配的字符串中,它对所处的 “缝隙” 或者 “两头” 附加的条件是:所在缝隙的右侧,必须能够匹配上 xxxxx 这部分的表达式。因为它只是在此作为这个缝隙上附加的条件,所以它并不影响后边的表达式去真正匹配这个缝隙之后的字符。这就类似 “/b”,本身不匹配任何字符。"/b" 只是将所在缝隙之前、之后的字符取来进行了一下判断,不会影响后边的表达式来真正的匹配。

所以 1 里面 (?=-) 意思是 ([^±]+) 的右侧必须是 ‘-’,即匹配所有不含±号的字符串(分组),并且最右字符为-号

()的作用:

(1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到

所以 2 里面()里的内容是 “user_mobile_default”,结果一般默认是数组中第二个

参考:http://www.cnblogs.com/wzhiq896/p/6012212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值