正则表达式在有类似匹配组的情况下如何尽可能多的匹配

FredSuvn 2016-04-27 09:32:24
比如
(?<name1>\+)|(?<name2>\+\+)
去匹配
"i++ + ++k"
我期望的匹配是三个匹配组
name2 ++
name1 +
name2 ++
然后实际的匹配组和name1和name2相关,name1在前的话就是5个
name1 +
如果name2在前的话就是上面三个匹配组。

现在我希望不管name1和name2的位置如何(不可预设),都尽可能多的匹配,也就是匹配上面三个匹配组,有什么解决方案?
...全文
393 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FredSuvn 2016-04-28
  • 打赏
  • 举报
回复
没有人知道吗?
家里敷泥呀 2016-04-27
  • 打赏
  • 举报
回复
引用 1 楼 pl3121605999 的回复:
好好学学语文
+1
FredSuvn 2016-04-27
  • 打赏
  • 举报
回复
引用 2 楼 rickylin86 的回复:
好好静下心来从基础学起.要知道正则匹配的原理.像这类问题如果你正则基础和原理弄懂了自然知道如何解决的. [quote=引用 楼主 FredSuvn 的回复:] 比如 (?<name1>\+)|(?<name2>\+\+) 去匹配 "i++ + ++k" 我期望的匹配是三个匹配组 name2 ++ name1 + name2 ++ 然后实际的匹配组和name1和name2相关,name1在前的话就是5个 name1 + 如果name2在前的话就是上面三个匹配组。 现在我希望不管name1和name2的位置如何(不可预设),都尽可能多的匹配,也就是匹配上面三个匹配组,有什么解决方案?
[/quote] 我说了name1和name2的位置不可预设,意思就是正则是动态的,\+\+?这种根本不适用这个场景
rickylin86 2016-04-27
  • 打赏
  • 举报
回复
好好静下心来从基础学起.要知道正则匹配的原理.像这类问题如果你正则基础和原理弄懂了自然知道如何解决的.
引用 楼主 FredSuvn 的回复:
比如 (?<name1>\+)|(?<name2>\+\+) 去匹配 "i++ + ++k" 我期望的匹配是三个匹配组 name2 ++ name1 + name2 ++ 然后实际的匹配组和name1和name2相关,name1在前的话就是5个 name1 + 如果name2在前的话就是上面三个匹配组。 现在我希望不管name1和name2的位置如何(不可预设),都尽可能多的匹配,也就是匹配上面三个匹配组,有什么解决方案?
pl3121605999 2016-04-27
  • 打赏
  • 举报
回复
好好学学语文
FredSuvn 2016-04-27
  • 打赏
  • 举报
回复
没有人知道吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧