在Java中,我必须使用RegEx验证最后包含“〜”和“ =”的字符串。
例如:
LOCKER=2004-02-23-23.28.22.377655~UCC=0103207031~URY=31/12/9999~URF=23/02/2004~URT=SEREST ISSY LES MO ~URFC=XX~URFNUMCB=XXXXXXXXXXX~CEB=XXXXX~CEBC=XXXXX~URFN=0001
此字符串格式为KEY1 = VALUE〜KEY2 = VALUE〜KEYN = VALUE大写
'〜'作为分隔符
目前,我正在使用一些常规表达式,但是所有这些都是假的,有人可以帮助我吗?谢谢你
问题来源:Stack Overflow
以下正则表达式应执行以下操作:
^(?!~)(?:(?:^|~)[^=~]+=[^=~]*)+$
说明
^ Match beginning-of-input, i.e. matching must start at beginning
(?!~) Input cannot start with `~`
(?: Repeat 1 or more times:
(?:^|~) Match beginning of input or match '~', i.e. match nothing on
first repetition, and match `~` on each subsequent repetition
[^=~]+ Match KEY
= Match '='
[^=~]* Match VALUE (may be blank)
)+
$ Match end-of-input, i.e. matching must cover all input
如果有进一步的限制,请根据需要更改KEY和VALUE的字符类,例如[A-Z][A-Z0-9]*,[^=~]+如果KEY必须是仅大写的标识符,请使用代替。
如果将Java matches()与正则表达式一起使用,则第一个^和结尾$都是多余的。^仍然需要第二个。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。