四个字母至少有一个“j”,优雅和最兼容的正则表达式解决方案?
发布时间:2020-12-14 06:05:58 所属栏目:百科 来源:网络整理
导读:我有这个问题让我头疼: 有没有办法使用正则表达式来测试至少包含字母“J”的4个字符的字符串?这就是我的意思: ^(j...|.j..|..j.|...j)$ 是的,我承认它很难看,如果问题改变4个字符到10个字符,或者将“至少一个j”改为“至少有一个j和一个k”,那就太疯了 为
我有这个问题让我头疼:
有没有办法使用正则表达式来测试至少包含字母“J”的4个字符的字符串?这就是我的意思: ^(j...|.j..|..j.|...j)$ 是的,我承认它很难看,如果问题改变4个字符到10个字符,或者将“至少一个j”改为“至少有一个j和一个k”,那就太疯了 为此编写RegEx的更优雅和兼容的方式是什么? 附加问题: >如果在学术上没有简单的答案,那么RegExp的限制是什么?为什么它不能解决这样的简单问题? 解决方法
如果您的正则表达式引擎支持前瞻(大部分都支持),您可以使用
^(?=.*j).{4}$ 前瞻(?=.* j)断言字符串中有一个j而没有实际消耗匹配的任何字符串.然后,以下.{4}将匹配四个字符的字符串. ^和$anchors确保字符串完全匹配. 如果要添加更多约束,只需添加另一个前瞻: ^(?=.*j)(?=.*k).{10}$ 匹配如果一个字符串中至少有一个j和一个kare存在,正好是10个字符长.等等… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读