正则表达式选择组

用户3124284

在配置单元中,我有一个带有组分隔符 '^' 的字段和由 '~' 分隔的组中的字段,示例值:

1~~0~4~6^7~~0~3~4^19~~1~4~6^88~~0~4~6^1~~0~4~6
5~~0~4~6^8~~0~3~4^5~~0~4~6^88~~0~4~6^18~~3~4~4^99~~4~5~8

我需要选择在第三个字段中具有非零值的所有组。

例子 :

1~~0~4~6^7~~0~3~4^19~~**1**~4~6^88~~0~4~6^1~~0~4~6

这里19~~1~4~6将被选中,因为第三个字段是 1

5~~0~4~6^8~~0~3~4^5~~0~4~6^88~~0~4~6^18~~**3**~4~4^99~~**4**~5~8

这里18~~3~4~4and99~~4~5~8和 将被选中。

如何形成正则表达式,因为这里有“if”条件。

扬·斯蒂比拉
[0-9]*~[0-9]*~[1-9][0-9]*~[0-9]*~[0-9]*

这不关心组分隔符。它只是找到任何交替的 ~ 和数字序列,其中中间的既不是空也不是零。

正则表达式解释:

[0-9]*        - match zero or more numbers
~             - match literal ~ character
[0-9]*
~
[1-9][0-9]*   - match one character between 1 and 9 followed by zero or more numbers (basically it means 'match any number but it can't start with zero)
~
[0-9]*
~
[0-9]*

如果您的输入格式始终与您的示例中的格式相同,这将起作用。例如,如果一组将包含更多或更少的字段分隔符 ~,则需要进行一些调整。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章