关于lex中正则表达式区分减号和负号(正后顾不可用)

本文探讨了在lex中如何通过正则表达式区分减号(运算符)和负号(数字特质),分析了两者的基本形式,并提到正后顾在解决该问题上的应用,但由于lex不支持正后顾,提出了需要寻找其他解决方案的需求。
摘要由CSDN通过智能技术生成

1. 减号和负号区别解释

减号是一种运算符,负号是数字的特质,两者不能混为一谈。

例如: a=a-10和a-=-10,前者是减号 是运算符,后者是表示这是一个负数,小于零。

2.利用正则式的正后顾解决

最初的想法是利用正则式中的后顾解决这个问题。先来科普一下正前瞻和正后顾:

      正前瞻:假设要匹配单词my ,要求紧随其后的单词是friend,要达到这个目的,便使用正前瞻。

      (?i)my (?=friend)

      (?i)的意思是不区分大小写;实际匹配是,会寻找后面跟着单词friend的my,而且被标亮的只有my

      正后顾:正后顾会查看左边的内容,与正前瞻的方向相反。语法为:

      (?i)(?<=my) friend

      意思是查找前面是单词my的friend单词,这个时候匹配的是friend,被标亮的也是friend,而且前面没有my的friend单词不会被标亮。

      分析

         ①若为减号:

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值