正则表达式没有AND逻辑

这几天在家,也没什么事,只好继续干枯的学术,见谅哈...

今天弄那个实验室的检索系统,用mysql的正则表达式做搜索功能,发现正则表达式竟然似乎不能表达AND逻辑。具体说来,就是如果我想匹配一个字符串,包含“北京”、“天津”、“上海”,顺序不限,就很难用简洁的正则表达。除非多次匹配,或者弄个三个地名的全排列来...

查了很多的资料,发现只有OR逻辑——(北京|天津|上海)。似乎正则表达式对顺序的要求很严格,仔细想想具体匹配算法,要一次找出这种排列的匹配,最简单的算法恐怕就是多次匹配吧。

记得第一次听说正则表达式这东西,觉得真是!@#$%^&啊!让我佩服得五体投地,无论是强大的功能还是乱码一样的表示_-_...

\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b,第一次看到这样的表达,谁都会发狂吧。至今我也没完全弄明白里面的符号含义,不过好在会一些实用的就够了。

可想而知这个匹配的算法……想想我就已经顶礼膜拜了。

网上的资源
正则表达式30分钟入门教程(简洁实用)
微软的正则表达式教程

随机文章:

正则表达式没有AND逻辑》上有 4 条评论

  1. \b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
    这个不是匹配邮箱地址么。
    \b 边界
    \. 点号。。
    \+ 重复前面字符1次以上,等同于{1,}
    {2,4} 重复前面字符2到4次 闭区间
    :razz:

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>