`
wjm251
  • 浏览: 110257 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

正则表达式的奇技淫巧-正则表达式判断素数,判断方程是否有解

阅读更多
首先申明,思想来自下面两个网页
http://coolshell.cn/?p=2704
http://blog.stevenlevithan.com/archives/algebra-with-regexes
我自己改造成python代码并加了下注解,遂成。
也许数据大了性能有问题,但确实太酷了。

#coding=utf-8
import re
def isPrime(num):
    pa = re.compile(r"""^1?$ #匹配空串或1
    |
    ^
    (11+?)#匹配1再加1个或多个1(这里是不贪婪的,可能贪婪的还需要往后看效率底点)
    \1+   #将上述匹配到的组再重复一次或多次,这正好是合数的算法
    $""",re.VERBOSE)
    return pa.match("1"*num) is None
for n in xrange(100):#输出100内的素数
    if isPrime(n):
        print n,


#coding=utf-8
#判断方程11x + 2y + 5z = 115是否有解
import re
pa = re.compile(r"^(.*)\1{10}(.*)\2{1}(.*)\3{4}$")
ma = pa.match("1"*115)
if ma!=None:
    print ma.groups()
分享到:
评论

相关推荐

    vue有哪些奇技淫巧.md

    vue有哪些奇技淫巧

    Go-Git的奇技淫巧

    在这个“Go-Git的奇技淫巧”中,我们将探讨一些高级和实用的Git技巧,以及如何使用Go来进一步操作Git。 1. **分支管理**:Git的分支机制允许开发者在同一项目上并行工作。`git branch`命令用于创建、查看和切换分支...

    Java编程中使用lambda表达式的奇技淫巧

    在Java编程中,Lambda表达式是一种强大的功能,它在Java 8中被引入,极大地简化了处理函数式接口的方式。Lambda表达式的核心理念是能够直接传递代码块,而不是通过创建匿名内部类的方式来实现。这种技术使得代码更加...

    Javascript中的函数声明与函数表达式(奇技淫巧)

    在JavaScript中,函数有两种主要的声明方式:函数声明(Function Declaration)和函数表达式(Function Expression)。这两种方式在语义上有所不同,同时也影响着它们的执行时机和作用域。 1. **函数声明**: 函数...

    gVim用户手册 作者: Bram Moolenaar(中文版)

    - **搜索命令和模式**:深入解析gVim强大的搜索功能,包括正则表达式的使用。 - **折行**:讨论如何管理和调整长行文本的显示,确保良好的阅读体验。 #### 四、学习指南与心得 - **译者前言**:强调实践的重要性,...

    算法心得-高效算法的奥秘(原书第2版)_带书签_高清_[位运算的奇技淫巧].pdf

    2. **位运算在优化中的应用**:位运算常用于数据结构设计和算法优化,如位数组用于空间效率的提升,位操作用于快速判断和设置状态。例如,用位运算实现快速的集合操作(增加、删除元素),或者在有限空间内存储大量...

    zxing.java源码解析-JavaAndroidInterview:Android、JavaSE、数据结构与算法豆知识,可用于碎片化学习和

    zxing.java源码解析 这是一个JavaSE、Android领域的豆知识tips,可以用来碎片化学习和面试。内容主要来源于行业内一大批高质量的优秀公众号,如Hollis、...正则表达式 Git 计算机组成原理(正在填补中……) 言职 附录:

    RocketMQ 奇技淫巧之 ServiceLoader 源码解读 - GitChat

    RocketMQ 奇技淫巧之 ServiceLoader 源码解读 抓下来打包成了HTML文件, 方便离线观看

    Python 语言有什么奇技淫巧吗?.docx

    Python 语言奇技淫巧总结 Python 语言作为一种高效、灵活的编程语言,具有...Python 语言中的奇技淫巧有很多,可以帮助开发者提高编程效率和代码质量。开发者可以通过学习和实践这些奇技淫巧,提高自己的编程水平。

    Python那些事——python的奇技淫巧

    Python,作为一门广受欢迎的编程语言,在...总之,Python的这些“奇技淫巧”展示了这门语言在实际编程中灵活多变的应用能力,对于学习和使用Python的开发者而言,了解这些技巧能够极大地提高开发效率和程序的用户体验。

    JavaScript奇技淫巧45招 _ 不可能不确定1

    理解分号的作用(例如自动分号插入ASII规则)有助于写出更稳定的代码。 5. **对象构造器**:使用`function`定义构造器可以创建自定义对象,例如`Person`构造器用于创建包含firstName和lastName属性的对象。通过`new...

    来自小密圈里的那些奇技淫巧.pdf

    标题中提到的“来自小密圈里的那些奇技淫巧”可能是指在特定的技术圈子中分享的一些特殊技巧,用于突破安全限制和进行有效的攻击测试。以下将详细解释文档中提及的各个技巧: 1. EVAL长度限制突破技巧: 在PHP中,`...

    Python-收集到的一些src挖掘奇技淫巧

    这个压缩包文件"Python-收集到的一些src挖掘奇技淫巧"可能是包含了一系列用于Python源代码安全检查和分析的技巧和工具。下面我们将深入探讨一些相关的知识点。 1. **源代码分析**:这是对软件项目源代码进行的详细...

    渗透中关于dns的奇技淫巧.pdf

    了解网站是否使用CDN以及其CDN提供商,有助于安全研究人员评估网络性能和安全策略。尽管知道CDN的使用并不直接带来安全优势,但在应对DDoS攻击或进行网络监控时,这些信息是有价值的。 总的来说,理解DNS的工作原理...

    vim编辑器用户手册

    高级技巧方面,用户可以学习到如何通过定制vimrc文件来优化编辑效率,包括如何使用加速冒号命令、进退之间的操作、搜索命令和正则表达式的使用、如何进行高效的编辑,以及如何处理灾难恢复的情况。手册最后还介绍了...

    Git的奇技淫巧

    Git的奇技淫巧在软件开发领域中是一个广泛讨论的话题,因为它的功能强大且灵活性极高。Git不仅仅是一个“分布式版本管理工具”,它还是一个能够帮助开发者跟踪代码变化、协同工作和回溯错误的强大系统。在JavaScript...

    开源电子书《JavaScript奇技淫巧》,本书向您分享一系列新奇、有趣、有技术含量的 JavaScript 编程技术

    开源电子书《JavaScript奇技淫巧》,『奇技淫巧』一词出自古籍《书·泰誓下》,指新奇的技艺和作品。此词意与本书内容十分契合,因此书名借用该词。

    bash奇技淫巧

    ### bash奇技淫巧 #### 简介 在日常的Linux使用过程中,熟练掌握Bash的一些技巧可以极大地提升工作效率。本文将分享一系列实用的Bash小贴士,旨在帮助那些经常与Linux命令行打交道的人们更好地利用Bash的强大功能...

Global site tag (gtag.js) - Google Analytics