【正则表达式】使用特殊字符($)进行正则匹配

【正则表达式】使用特殊字符($)进行正则匹配


一、问题背景

  在数据提取的时候,往往需要进行正则匹配。但是在包含特殊字符(例如:$、?、#、^)的字符串,进行匹配时发现以前简单的搜索并不能匹配到对应数据。
  经过一段时间挣扎后,虽然解决了,但是害怕忘记,特此记录。

二、问题简述

  在一个包含$GPGGA,$GPRMC,$GPVTG,...的文本中,我需要通过字符串$GPGGA,进行匹配,筛选出$GPGGA,的所在行的文本。

$GPGGA,050213.00,3112.7473316,N,12135.6498261,E,4,40,0.4,24.2587,M,11.500,M,6.0,00044B
$GPRMC,050213.00,A,3112.7473316,N,12135.6498261,E,000.001,112.0,131223,0.0,W,D
24
$GPVTG,112.003,T,112.003,M,0.001,N,0.003,K,D24
$GPGGA,050214.00,3112.7473304,N,12135.6498250,E,4,40,0.4,24.2657,M,11.500,M,2.0,0004
47
$GPRMC,050214.00,A,3112.7473304,N,12135.6498250,E,000.002,151.5,131223,0.0,W,D23
$GPVTG,151.529,T,151.529,M,0.002,N,0.004,K,D
20
$GPGGA,050215.00,3112.7473305,N,12135.6498259,E,4,40,0.4,24.2666,M,11.500,M,3.0,00044D
$GPRMC,050215.00,A,3112.7473305,N,12135.6498259,E,000.003,134.4,131223,0.0,W,D
29
$GPVTG,134.380,T,134.380,M,0.003,N,0.005,K,D20
$GPGGA,050216.00,3112.7473306,N,12135.6498254,E,4,40,0.4,24.2686,M,11.500,M,4.0,0004
49
$GPRMC,050216.00,A,3112.7473306,N,12135.6498254,E,000.003,153.1,131223,0.0,W,D20
$GPVTG,153.079,T,153.079,M,0.003,N,0.005,K,D
20

  根据经验,上来直接就是ctrl+F搜索框弹出,然后加ctrl+C、ctrl+V复制$GPGGA,,直接点击查找。结果不出所料。
  如图所示,发现无法搜索,。
在这里插入图片描述
  经过测试,发现使用普通模式能匹配到我需要匹配的字段。
在这里插入图片描述
  于是问题来了,为什么正则不可以?
  个人理解,理论上来讲正则要比普通匹配更高级。所以本着工具没有问题,绝对是使用的方法问题的思路,进行资料查找。下面是解决方法

三、解决方法

3.1.在特殊字符前面增加\就可以匹配特殊字符

正则的匹配内容切换为:\$GPGGA,后,点击查找

3.2.如图所示,虽然查找到了对应的字符,但是没有选中$GPGGA,文本后面的内容,我们也并不需要复制一堆$GPGGA,,为了解决这个问题继续挣扎。

在这里插入图片描述

3.3.查阅资料后,发现可以通过在匹配内容后,添加.*来满足需求

正则的匹配内容切换为:\$GPGGA,.*后,点击查找

3.4.完成需要的内容匹配,复制,粘贴到新建文本

在这里插入图片描述

3.5.问题解决

在这里插入图片描述

四、总结

  这问题来源还是正则不熟练,后续还需要了解,并在日后又更好方式的时候进行更新。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值