开发者社区> 问答> 正文

正则表达式,用于验证包含'='和'〜'作为结束字符的字符串

在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

展开
收起
montos 2020-03-27 13:25:08 404 0
1 条回答
写回答
取消 提交回答
  • 以下正则表达式应执行以下操作:

    ^(?!~)(?:(?:^|~)[^=~]+=[^=~]*)+$
    

    说明

    ^            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

    2020-03-27 13:25:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载