正则表达式匹配不被空格包围

上下文:我正在构建一个有趣的解释器,需要实现空白规则。


规则是,当正则表达式不被空格包围时,必须匹配加号“ +”。这是一个示例文本:


a+b c +d g+ h i + j x+y

a和b之间的加号以及x和y之间的加号应匹配。我是正则表达式的新手。但是,我尝试了以下正则表达式:


\+(?<!\s)(?!\s)

对我来说,


\+         find all "+" matches

(?<!\s)   (neg look behind) that don't have spaces behind

(?!\s)     (neg look ahead) that don't have spaces ahead

但是,当我在regex101上运行时,我只能匹配a和b之间的第一个加号。


我不确定我在这里做错了什么。意见表示赞赏。


绝地无双
浏览 243回答 1
1回答

12345678_0001

您可以简单地使用&nbsp;\[a-zA-Z\]\+\[a-zA-Z\]或者如果+周围还有更多字符,请使用[a-zA-Z]+\+[a-zA-Z]+更新:您可以(?<!\s)[+)-](?!\s)通过在先行条件和先行条件之间移动匹配的符号来使用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java