jokercat
2018-02-26 10:12
采纳率: 100%
浏览 4.9k

将两个不同的正则表达式合并为一个(要用与的关系)

我有两个正则表达式,我想用与的关系合并,该怎么做?
String regEx2 = "^(?=.*\d+)(?!.*?([\d])\1{5})[\d]{6}$";
String regEx3 = "(\b(?!123456\b)\d+)";
String regEx31 = "(\b(?!234567\b)\d+)";
String regEx32 = regEx3+"|"+regEx31;
把ex2和ex32合并(忽略我渣渣的正则写法--!,一定要用与的关系)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • m0_37779096 2018-02-26 10:14
    已采纳

    可以用零宽断言来实现。 例如: 合并下列正则表达式: A. 必须包含数字的正则表达式 .*\d B. 必须包含英文的正则表达式 .*[a-zA-Z] C. 字符串长度是8-12位的正则表达式 ^.{8,12}$ 合并后结果: (?=.*\d)(?=.*[a-zA-Z])^.{8,12}$ 表示必须包含数.

    点赞 打赏 评论
  • p474391654 2018-02-26 10:20

    往里面合并就OK啊?

    点赞 打赏 评论
  • qq_40385950 2018-02-26 10:36

    直接合并就可以啊

    点赞 打赏 评论
  • toouoo 2018-02-26 11:56

    合并是为了二者都能使用,还是要做判断或的关系。分开用最好还是不要合并

    点赞 打赏 评论
  • weixin_40878729 2018-02-26 12:47

    String regEx2 = "^(?=.*\d+)(?!.*?([\d])\1{5})[\d]{6}$";
    String regEx3 = "(\b(?!123456\b)\d+)";
    String regEx31 = "(\b(?!234567\b)\d+)";
    String regEx32 = regEx3+"|"+regEx31+"|"+regEx32;

    说实话,没有看明白你想提取什么东西出来
    而且,就我所知,根本就没有所谓的对正则表示式求与运算的这个说法,
    如果,非要‘与’运算,你得重新分析客户的要求,然后重新设计正则表达式,使新设计出来的正则表达式刚好符合客户的外行眼中的与运算

    如果直接给两个正则表达式,让人求与,我实在没发想象这需要多么大的一个脑洞才可以完成这个事!!!

    点赞 打赏 评论

相关推荐 更多相似问题