我对正则表达式有非常基本的了解,这对我来说太难了。我需要将字符串分成三部分。
我的输入看起来像XXX YYY:ZZZ:
(始终以:ZZZ:
结尾)
$&+,:;=?@#|'<>.-^*()%!
和空格.
结尾或根本不存在:
之间我能想到的最棘手的字符串是Lo-rem ip sum.,::0001678154:
。 ZZZ
0001678154
我们可以摆脱:ZZZ:
,因此剩余部分为Lo-rem ip sum.,:
,但最后一个字母不是字母数字或.
,这意味着YYY不是包含在此字符串XXX
中的是剩余的内容(Lo-rem ip sum.,:
)
现在我有可怕的半功能代码,硬编码长度,ifs,substrings和splits我相信你可以提出更好的解决方案。感谢
答案 0 :(得分:1)
以下正则表达式会将三组字符捕获并存储到三个不同的组中,
^(?<xxx>.*?)(?<yyy>(?:[A-Za-z0-9])+\.?)?:(?<zzz>\d+):$
第二组之后的 ?
将使该组成为可选组。