经常使用的正则分割

背景:

        工作中经常需要对一串数据进行分割,最简单的办法就是使用正则表达式。


常见符号:

  •  \:\后跟一个特殊字符,表示匹配这个字符,例如\$,表示匹配数据中的$。

  • ^:^后跟一个特殊字符,出现在一个字符集合时,表示不匹配这个字符,例如[^$],表示匹配数据中的非$。

  • *:匹配前置表达式0次或者多次,等价于{0,},例如(,)*表示匹配数据中的’,’0次或多次。

  • +:匹配前置表达式1次或者多次,等价于{1,},例如(,)+表示匹配数据中的’,’1次或多次。

  • ?:匹配前置表达式0次或者1次,等价于{0,1},例如(,)?表示匹配数据中的 ‘,’ 0次或多次。

  • ():捕获括号,捕获括号内的任意单个字符,例如(,)表示匹配数据中的 ‘,’存在则返回’,’。

  • {n,m}:n和m都是整数,匹配前面字符至少n次,最多m次。

  • []:一个字符集合,例如[xyz]匹配“xyza”中的xyz。

  • [^xyz]:一个反向字符集合,例如[^xyz]匹配“xyza”中的a。

  • \d:匹配一个数字,等价于[0-9],例如\d匹配“ABC69”中的数字6。

  • \D:匹配一个非数字,等价于[^0-9],例如\D匹配“ABC69”中的第一个字母A。

  • \s:匹配一个空白字符,例如\s\w*,匹配“foo bar”中的bar。

  • \S:匹配一个非空白符,例如\S\w*,匹配“foo bar”中的foo。

  • \w:匹配一个单字字符(字母、数字或下划线),例如\w,匹配“app”中a,匹配“$20”中的2。

  • \W:匹配一个非单字字符,例如\W,匹配“$2020”中的$。

  • \f:匹配一个换页符。

  • \n:匹配一个换行符。

  • \r:匹配一个回车符。

  • \t:匹配一个水平制表符。

  • \v:匹配一个垂直制表符。


测试结果:

示例数据:$20240101$K1$abc$-009$测试

示例正则:(\$)([^$]+)*\$(\D)(\d)\$([^$]+)*\$(\W)(\d+)*\$([^$]+)*

分割结果如下

var reg = /(\$)([^$]+)*\$(\D)(\d)\$([^$]+)*\$(\W)(\d+)*\$([^$]+)*/;
reg.exec('$20240101$K1$abc$-009$测试');
https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24


段落分析:

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雲烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值