java - LHS / RHS和运算符中除法表达式的正则表达式
问题描述
我想用>
运算符划分表达式。我想识别任何使用>
运算符的表达式并将其分为三组:LHS, RHS and >
我正在使用以下正则表达式
(.+)(>)(.+)
我错误地识别了组
5 > ${a > 0 ? a :6 }
它检索
Group1: 5 > ${a
Group2: >
Group3: 0 ? a :6 }
哪个是错误的,它应该检索
Group1: 5
Group2: >
Group3: ${a > 0 ? a :6 }
任何使它工作的建议。我可以在正则表达式中添加一些应该忽略>
内部使用的运算符的内容吗${}
解决方案
我可以在正则表达式中添加一些应该忽略
>
内部使用的运算符的内容${}
:
您也许可以使用这个>
在内部跳过的正则表达式{...}
(假设没有不平衡和转义的括号)。
(\${[^}]+}|[^>]+?)\h*>(?![^{}]*})\h*(.+)
正则表达式详细信息:
(\${[^}]+}|[^>]+?)
: 第 1 组:匹配格式为${...}
格式的字符串或任何非格式字符的 1+>
\h*>
: 匹配 0 个或多个空格,后跟一个>
(?![^{}]*})\h*
: 否定前瞻断言我们没有 a}
没有 a{
和}
。(.+)
: 第 2 组:匹配剩余字符
推荐阅读
- ruby - 我们如何使用 rubyXL 保护工作表的某些部分?
- c# - 如何从数据表中将带有数据的图像显示到 datagridview
- php - 显示插件分层弹出窗口
- reactjs - Call a method in getDerivedStateFromProps
- import - 使用google colab导入各种文件
- ios - 我的视图边界开始处的空间
- tcp - 如何根据 TCP 流有效地拆分 pcap 文件?
- google-cloud-platform - 选择了错误的项目进行部署
- javascript - How to set default className in react router link changed
- javascript - jQuery if 语句检查值是否存在