精华内容
下载资源
问答
  • MATLAB与金融计算结课论文 第 PAGE 3 页 题目 学号作者...关键词区域性差异性发展水平 1引言 注意事项1数学公式或数学符号的写法尽量用Word自带的数学公式写2中文标点符号包括括号3段落首行的缩进4表格的引用不能写见下
  • 实例039 根据标点符号对字符串进行分行 61 实例040 将汉字转换为拼音 63 实例041 商品金额的大小写转换 64 实例042 根据年份判断十二生肖 65 实例043 将字母全部转换为大写或小写 67 实例044 汉字与区位码的转换 69 ...
  • Python要点中部分引用于 菜鸟教程-Python Python 简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些...

    Python要点

    Python 简介

    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

    Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

    Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

    Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

    Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。


    Python 发展历史

    Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

    Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

    像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

    现在 Python 是由一个核心开发团队在维护,不过就在18年Python创造者 Guido van Rossum 这位仁慈的生活独裁者宣布退位

    引起Guido van Rossum独裁者主要是PEP 572风波,PEP(Python Enhancement Proposal)是一种Python改进提案,PEP 572 的标题是「Assignment Expressions」,也就是「赋值表达式」,也叫做「命名表达式」,不过它现在被广泛的别名是「海象运算符」(The Walrus Operator)。因为:=很像海象。


    Python 特点

    1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    2.易于阅读:Python代码定义的更清晰。

    3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

    5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

    6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    8.数据库:Python提供所有主要的商业数据库的接口。

    9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

    10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    python之禅

    Python之禅 (import this)
    美胜于丑陋( Python以编写优美的代码为目标)
    明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
    简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
    复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
    扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
    间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
    可读性很重要(优美的代码是可读的)
    即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
    不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass风格的代码)
    当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯—种明显的解决方案(如果不确定,就用穷举法)
    虽然这并不容易,因为你不是 Python之父(这里的 Dutch是指Gudo)
    做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
    如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
    命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

    python环境搭建

    安装Python3以上版本

    Python2将在2020年1月1日彻底退休,官方将彻底放弃对Python2的安全维

    python3版本选择

    进入官网在Downloads中找到自己系统对应的下载版本。Windows系统官方下载地址
    我是Windows10系统,再次我就用用Windows演示。在这里插入图片描述
    按顺序分别是
    Windows帮助文件
    Windows 64位系统可嵌入ZIP文件(树莓派等可嵌入式设备使用)
    Windows 64位系统可执行安装程序(一次性下载完成后安装的安装包,可离线断网安装,比较方便)
    基于Web的Windows 64位系统安装程序(在线安装程序,下载的文件类似与一个下载器)
    Windows 32位可嵌入zip文件
    Windows 32位可执行安装程序
    基于Web的Windows 32位安装程序

    再次推荐使用Windows x86-64 executable installer

    开始安装

    首先选择自定义安装(如果个人喜欢立刻安装也可以直接安装),如果选择立刻安装需点击Add Python 3 to PATH,将python添加到环境变量中。在这里插入图片描述
    如果现在自定义安装后即可看见下图所示,将其全选。其中pip非常重要,没有pip的Python是没有灵魂的。不过你也可以选择使用Anaconda的conda来取代pip。

    在这里插入图片描述
    高级选项中分别为
    为所有用户安装
    将文件与python关联(需要py启动程序)
    为已安装的应用程序创建快捷方式
    将python添加到环境变量
    预编译标准库
    下载调试符号
    下载调试二进制文件(需要VS2015或更高版本)
    在这里插入图片描述
    点击Install即可开始安装

    IDE(集成开发环境)

    工欲善其事,必先利其器
    在这里我总结一下我用过的两个写Python的IDE

    VSCode

    VSCode是微软推出的一个多功能的IDE

    1. 有官方的中文版本
    2. 有强大的插件库
    3. 支持不计其数的编程语言
    4. 启动速度很快
    5. 对电脑配件要求较低
    6. 语言的组件需要自行下载配置
    7. 免费使用
      我个人很喜欢这个开发环境,因为之前玩过一阵子vue-cli,这里面拥有vue-cli的扩展,非常好用,而且作为微软的产品,界面的设计风格我也很喜欢。如果选择使用vscode开发可以去网上找找适用于Python开发的扩展下载使用,可以对Python的开发有辅助作用。
      在这里插入图片描述

    pycharm

    汉化方法

    汉化包是平方X原创汉化,下载地址链接:https://pan.baidu.com/s/1SnA-ZyxR3nE-pAfgcgX8_g 提取码:xxmm
    使用方法:
    将 resources_zh_CN_*.jar ,放到软件安装路径下的 lib 目录中,重启软件即可

    1. 注意是 lib 不是 bin
    2. 不需要重命名,不需要解压,不需要删除任何 jar 包,不会覆盖任何 jar 包
    3. 软件安装路径的 lib 目录示例 D:\software\JetBrains\AndroidStudio\lib
    4. 该目录下应该有一个文件: resources_en.jar 如果没有,说明没有找对路径
    5. MAC 用户请在 Finder > 应用程序 中找到软件,右键 > 显示包内容

    专业版使用方法

    pycharm是一个专门用于开发Python的IDE,内部已经集成了大量的Python插件,不用像vscode一样自行安装。

    1. 上手方便,专门为Python开发使用的的IDE,更加专业便捷
    2. 提供社区免费版,可以免费使用。
    3. 不支持中文界面
    4. 软件体积较大

    如果需要专业版,大眼仔旭博客中提供激活补丁
    19.2.2激活方法(亲测19.2.3版本同样可以激活),下载补丁后解压补丁到你知道的位置,推荐是pycharm安装目录然后打开
    "Edit Custom VM Options…"中文版是“编辑自定义WM选项”在最后一行添加

    -javaagent:D:\IDE\PyCharm\crack\jetbrains-agent.jar

    (D:\IDE\PyCharm\crack\jetbrains-agent.jar,是你补丁压缩包中解压出的一个jetbrains-agent.jar文件的位置,根据你自己的电脑位置填写,填写错误将引起严重后果
    在这里插入图片描述

    之后在打开"Help" -> “Register…” or “Configure” -> “License server”
    点击Discover Server,之后再去Activation code中,填写补丁压缩包Activation Code.txt中的内容即可激活
    在这里插入图片描述
    (如果觉得麻烦就用社区版就好了,社区版好像就把WEB开发那一块砍了,其他区别不大)建议初学者使用社区版就够了,社区版好像就把WEB开发那一块砍了,其他区别不大。

    pycharm常用配置

    1. 主题的修改File- settings- apperance- theme
    2. 代码字体(控制台)的修改File- settings-Editer-Font
    3. 关闭更新 File-settings- Appearance behavior- System Settings- Updates
    4. 快捷键的修改File- settings- Keymap
    5. 添加api文档悬浮提示File- settings- Editer-general
    6. 自动导包File- settings-Editer-Genera1- Auto Import
    7. 禁止自动打开上次工程File- settings- Appearance Behavior-System Settings
    8. 添加头部文件 Editer Code Style- File and Code templates

    # !/usr/bin/env python
    # -*- encoding: utf-8 -*-
    # @Author  :   {YourName}
    # @License :   (C) Copyright 2019
    # @Contact :   {YourEmail}
    # @Software:   PyCharm
    

    1. 修改字体编码 Editer-Code Style- File encodings

    推荐用于编程的字体!

    可以查看我写的另一个博客
    适用于编程的字体以及如何Pycharm和VSCode中设置连体字(附网盘下载链接)

    展开全文
  • python中文文本分类

    2018-12-17 22:20:30
    这是来自一个菜鸟的总结前言除去文本中的...虽然使用的是中文文档,但是不免有一些非中文的部分,这时候就需要将那些非中文的部分去掉,运用下面代码可以将文本中的标点符号清除,被清除的字符用空格代替: def is_...

    前言

    在做文本挖掘的时候,很多时候都需要分词,中文分词不跟英文分词一样,词语与词语之间没有天然的空隙,这时候就需要我们专门去解决这个问题了。

    除去非中文部分

    虽然使用的是中文文档,但是不免有一些非中文的部分,这时候就需要将那些非中文的部分去掉,运用下面代码可以将文本中的标点符号清除,被清除的字符用空格代替:

    def is_ustr(in_str):
        out_str=''
        for i in range(len(in_str)):
            if is_uchar(in_str[i]):
                out_str=out_str+in_str[i]
            else:
                out_str=out_str+' '
        return out_str
    def is_uchar(uchar):
        """判断一个unicode是否是汉字"""
        if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
            return True
        else:
            return False
            
    

    中文分词

    推荐使用结巴分词,只需要pip install jieba就可以了,运用下面的代码,可以将刚刚使用去除非中文字符之后的字符串进行分词

    def jieba_main(out_str):
        cut_str = jieba.cut(out_str)
        cut_str = ' '.join(cut_str)
        return cut_str
    

    读取文档并且去除非中文部分,在利用jieba分词处理

    将需要分类的文档保存到一个文件夹下面,移动到我们的py文件目录中。
    以下代码创建一个空数组,之后会读取文件并且去除非中文部分,在利用jieba分词处理。
    在文本在处理之后,用‘.append’方法将我们的已经处理之后的文本添加到我们的空数组wei[ ]之中

    def main():
        path = './aaa'#需要进行文本分类的文本的文件夹路径
        wei = []#空数组
        listdir = os.listdir(path)#列出文件夹下的文件名
        length = len(listdir)#长度
        for i in listdir:
            begin_path = path + '/' + i
            #读取文件并且除去非文本部分,分词
            with open(begin_path) as f:
                word = f.read()
                word = is_ustr(word)
                words = jieba_main(word)
                wei.append(words)
        return wei
    

    引用停用词

    这样的分词有一个缺陷,就是没有引用停用词,在一个文本之中,有的词对我们的非类是没有一点帮助的,比如的,是,等等一切这样的词语,所以我们可以引用停用词,将这些词去掉,这样我觉得文本分类的结果更加具有说服力,下载地址在这,当然还有一些其他版本的停用词,不过这些是我们常用的,可以根据个人实际情况增减。

    在我们用scikit-learn做特征处理的时候,可以通过参数stop_words来引入一个数组作为停用词表。

    现在我们将停用词表从文件读出,并切分成一个数组备用:

    #从文件导入停用词表
    def yy_stpword():
        stpwrdpath = "./stop_words.txt"#停用词文本路径
        with open(stpwrdpath, 'rb') as f:
            stpwrd_content = f.read()
        #将停用词表转换为list  
            stpwrdlst = stpwrd_content.splitlines()
            print(stpwrdlst)
        return stpwrdlst
    

    进行向量化,TF-IDF和标准化

    想了解文本向量化,TF-IDF和标准化请戳这里
    在这里我们传入上面经过处理之后的文本数组wei[ ],停用词在这里也得到了使用
    将包含文本文档且经过简单处理之后的wei[ ]数组进行向量化,TF-IDF处理和标准化

    #传入我们上面return的wei数组
    def tf(wei):
        vector = TfidfVectorizer(stop_words=yy_stpword())#引用停用词
        tfidf = vector.fit_transform(wei)#
        d = tfidf.toarray()
        return d
    

    K-means 算法聚类

    K-means算法介绍请戳这里
    我们传入上面经过 tf()函数向量化,TF-IDF和标准化的特征向量 “d ”。
    这会将特征向量d[ ]里面的特征值分类。

    def km(d):
        k = 4 #将所有文本分成4类,可自定义设置
        clf = KM(k)
        kmns = clf.fit_predict(d)
        return kmns
    

    优化main()函数

    现在我们优化我们的main()函数,并且将文本分类之后的结果使之更加清楚。
    使用fenlei(numb,ga)函数,处理我们分类的结果,将同一类的文本文档保存到同一个文件夹下。

    def main():
        path = './aaa'#需要进行文本分类的文本的文件夹路径
        wei = []#空数组
        listdir = os.listdir(path)#列出文件夹下的文件名
        length = len(listdir)#长度
        for i in listdir:
            begin_path = path + '/' + i
            #读取文件并且除去非文本部分,分词
            with open(begin_path) as f:
                word = f.read()
                word = is_ustr(word)
                words = jieba_main(word)
                wei.append(words)
        tfs = tf(wei)  #将文本向量化,TF-IDF和标准化
        kms = km(tfs)    #K--means聚类算法聚类  
        for i in range(length):
            pdb.set_trace()
            fenlei(listdir[i],kms[i])
    def fenlei(numb,ga):
        path = '.'
        begin_path = path + '/' + numb
        paths = '../' + str(ga) 
        folder = os.path.exists(paths)
        if folder:
            path_d = paths + '/' + str(numb) 
            shutil.move(begin_path,path_d)
        else:
            os.makedirs(paths)
            path_d = paths + '/' + str(numb) 
            shutil.move(begin_path,path_d)
    

    总体test.py代码

    亲测有效

    import os
    import shutil
    import jieba
    import pdb
    
    
    def main():
        path = './aaa'#需要进行文本分类的文本的文件夹路径
        wei = []#空数组
        listdir = os.listdir(path)#列出文件夹下的文件名
        length = len(listdir)#长度
        for i in listdir:
            begin_path = path + '/' + i
            #读取文件并且除去非文本部分,分词
            with open(begin_path) as f:
                word = f.read()
                word = is_ustr(word)
                words = jieba_main(word)
                wei.append(words)
        tfs = tf(wei)  #将文本向量化,TF-IDF和标准化
        kms = km(tfs)    #K--means聚类算法聚类  
        for i in range(length):
            fenlei(listdir[i],kms[i])
    
    
    #除去非中文部分
    def is_ustr(in_str):
        out_str=''
        for i in range(len(in_str)):
            if is_uchar(in_str[i]):
                out_str=out_str+in_str[i]
            else:
                out_str=out_str+' '
        return out_str
    def is_uchar(uchar):
        """判断一个unicode是否是汉字"""
        if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
            return True
        else:
            return False
    
    #jieba中文分词
    def jieba_main(out_str):
        cut_str = jieba.cut(out_str)
        cut_str = ' '.join(cut_str)
        return cut_str
    
    
    ### 进行向量化,TF-IDF处理和标准化一步到位
    from sklearn.feature_extraction.text import TfidfVectorizer
    #传入我们上面return的wei数组
    def tf(wei):
        vector = TfidfVectorizer(stop_words=yy_stpword())#引用停用词
        tfidf = vector.fit_transform(wei)#
        d = tfidf.toarray()
        return d
    #引用停用词
    def yy_stpword():
        stpwrdpath = "./stop_words.txt"#停用词文本路径
        with open(stpwrdpath, 'rb') as f:
            stpwrd_content = f.read()
        #将停用词表转换为list  
            stpwrdlst = stpwrd_content.splitlines()
        return stpwrdlst
    
    
    #K-means 算法聚类
    from sklearn.cluster import KMeans as KM
    def km(d):
        k = 4 #将所有文本分成4类
        clf = KM(k)
        kmns = clf.fit_predict(d)
        return kmns
    
    #处理分类结果
    def fenlei(numb,ga):
        path = '.'
        begin_path = path + '/aaa/' + numb
        paths = './' + str(ga) 
        folder = os.path.exists(paths)
        if folder:
            path_d = paths + '/' + str(numb) 
            shutil.move(begin_path,path_d)
        else:
            os.makedirs(paths)
            path_d = paths + '/' + str(numb) 
            shutil.move(begin_path,path_d)
    
    
    if __name__ == '__main__':
        main()
    

    文件目录结构

    ——stop_words.txt
    ——test.py
    ——aaa #文件夹

    stop_word.txt:下载的停用词文本
    test.py:python代码
    aaa:存放我们需要分类的文本文档

    展开全文
  • 正则表达式 语法详解

    2020-04-08 17:38:19
    正则表达式介绍普通字符标准字符集合自定义字符集合量词字符边界匹配模式分组和反向引用分组反向引用预搜索正则...字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是普通字符。 普通字符的含义是,在匹配...

    介绍

    正则表达式是用来进行文本的复杂处理的。正则表达式就是定义了一个规则,按照我们定义的规则进行字符串的匹配。大部分的编程语言、数据库、开发环境都支持正则表达式。

    普通字符

    字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是普通字符。
    普通字符的含义是,在匹配一个字符串时,匹配一个与之相同的字符。
    匹配字母a
    如果想要匹配一些有特殊含义的字符可以使用转义符,比如想要匹配“?”可以写这样的表达式“\?”。

    标准字符集合

    标准字符集合 含义
    \d 匹配任意0~9中的任意一个数字
    \w 匹配任意一个字母或数字或下划线
    \s 匹配包括空格、制表符、换行符等空白字符中的任意一个
    . 可以匹配除了换行符外的任意一个字符

    注意区分大小写,大写代表的是相反的含义
    比如\D表示匹配除了0~9数字外的任意一个字符。

    自定义字符集合

    []方括号内包括多个匹配规则,能够匹配符合[]方括号内任意规则的字符。

    表达式 含义
    [abcd] 匹配“a”,“b”,“c”,“d”中的任意一个字符
    [1-9] 匹配1~9中的任意一个字符
    [\^a-g] 匹配a~g外的任意一个字符

    上述的例子中有几个知识点
    1、[]方括号内的匹配规则间是或的关系,如第一个例子匹配“a”或“b”或符合方括号中其他规则的。
    2、“-”表示至,a-z,表示从a至z的所有字符。
    3、“^”放在方括号中表示取反。
    此外,自定义字符集合还有一些注意
    1、除了上述的“^”和“-”外正则表达式的其他特殊符号在[]方括号中失去其特殊含义。
    2、除了"."外的标准字符集合在[]方括号中依旧表示该集合,例如,[\d.]表示匹配0~9中的任意一个字符和小数点。

    量词

    量词顾名思义是用来修饰匹配次数的特殊符号

    表达式 含义 例子
    {x} 匹配发生x次 a{3}等价于aaa,既匹配一个aaa的子串
    {x,y} 匹配发生x至y次 a{1,5},表示匹配一个a至5个a的一个子串
    {x,} 匹配至少发生x次 a{1,},表示匹配至少一个a的子串,如aaa,aaaaaaa
    匹配发生0次或1次 ?的作用等价于{0,1}
    + 匹配至少发生1次 +的作用等价于{1,}
    * 匹配不发生或发生任意次 *等价于{0,}

    这是可能会有人有疑问,{x,y}匹配发生x次至y次,如a{1,4}像“aaaaaa”该怎么匹配呢,是匹配4个还是一个呢?
    在匹配次数中有两个模式
    贪婪模式
    匹配的字符越多越好,即上述的例子在贪婪模式下应该匹配4个,默认的模式就是贪婪模式。
    非贪婪模式
    与贪婪模式相对,匹配的字符越少越好,即上述的例子在非贪婪模式下应该匹配1个。
    在量词后面加一个“?”就是非贪婪模式,例如a{1,4}?此时匹配a在符合的量词范围内越少越好。

    字符边界

    匹配符合某种规则的位置

    标记 含义
    ^ 匹配字符串开始的位置
    $ 匹配字符串结束的位置
    \b 匹配一个单词边界(前面和后面的字符不全是\w)

    字符边界
    此图与普通字符内容处的图片相对比,发现此图只匹配了一个a,这是因为“^”匹配字符串的开始位置,也就是说“^a”匹配的是在字符串开始处的a。

    匹配模式

    IGNORECASE 忽略大小写模式
    正则表达式默认情况下是区分大小写的,在次模式下忽略大小写。
    SINGLELINE 单行模式
    整个文本看作一个字符串,只有一个开头一个结尾。
    MULTILINE 多行模式
    每行都是一个字符串,都有开头和结尾。
    在多行模式下,如果想要匹配整个文本的开始位置和结束位置用\A和\Z。

    分组和反向引用

    分组

    表达式 作用
    | 分支结构,左右两边表达式之间“或”关系,匹配左边或者右边
    () 捕获组,把正则表达式的一部分括起来组成一个单元
    (?:) 非捕获组,一个表达式中,不得不使用(),但又不需要保存()中子表达式匹配的内容,这时可以用非捕获组来抵消使用()带来的副作用

    捕获组可以作为整体来修饰,例如,(aa){2}等价于aaaa。
    ()捕获组会将括号内的匹配缓存起来,以便反向引用,但如果文本很大的话,大量的缓存会影响性能,此时可用非捕获组(?: ),非捕获组不会保存匹配到的内容。

    反向引用

    每一对捕获组()会分配一个编号,编号时根据左括号的顺序自动分配的。
    (a(b)(d)) 在次表达式中有三个分组,分别是1、(a(b)(d)) 2、(b) 3、(d)
    因为捕获组将括号内匹配到的内容缓存了起来,那么可以用反向引用来使用所缓存的内容。
    反向引用通过编号来使用,在(a(b)(d)) 中\1表示“abd”,\2表示“b”,\3表示“d”。
    反向引用的最简单的、最有用的应用之一,是提供查找文本中两个相同的相邻单词的匹配项的能力。
    在这里插入图片描述

    预搜索

    预搜索是对位置的匹配,判断某个位置的前后字符是否符合指定的条件,跟之前的字符边界的概念类似,都是对位置的匹配。

    表达式 含义
    (?=exp) 断言自身出现的位置的后面能匹配表达式exp
    (?<=exp) 断言自身出现的位置的前面能匹配表达式exp
    (?!exp) 断言自身位置的后面不能匹配表达式exp
    (?<!exp) 断言自身位置的前面不能匹配表达式exp

    在这里插入图片描述
    上述图片中的正则表达式表示只匹配那些以数字结尾的okk。预搜索匹配到的内容并不会计入最终的匹配结果,只是提供一个你所匹配的内容的前后内容的一个限定。

    正则在Java编程中的使用

    相关的类在:java.util.regex包下面
    类Pattren:
    正则表达式的编译表示形式
    类Matcher:
    通过解释Pattren执行匹配操作的引擎

    import java.util.Arrays;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexpTest1 {
        public static void main(String[] args) {
            //表达式对象
            Pattern p = Pattern.compile("\\b[0-9]+\\b");
    
            //创建Matcher对象
            Matcher m = p.matcher("**123**456**789");
    
            //当正则表达式与字符串完全匹配时返回true
            boolean b = m.matches();
            System.out.println(b);
    
            /*查找
            *find()查找下一个与模式匹配的子串,调用一次指针下移一个
            *group()输出当前find()所指的子串
            */
            while(m.find())
            {
                System.out.println(m.group());
            }
    
            /*替换
            *将匹配到的子串替换成#
            */
            String str = m.replaceAll("#");
            System.out.println(str);
    
            /*分割
             *
             */
            String[] str1 = p.split("**123**456**789");
            System.out.println(Arrays.toString(str1));
        }
    }
    

    输出结果:

    false
    123
    456
    789
    **#**#**#
    [**, **, **]
    

    示例

    验证手机号
    String regex = “^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$”;
    验证QQ号
    String regex = “^[1-9][0-9]{4,} $”;

    展开全文
  • 'java'不是内部或外部命令解决方法

    万次阅读 2017-06-16 10:33:41
    所以,建议先检查一下你环境变量的配置,比如path有没有配置,有没有写错,“JAVA_HOME”值有没有写错,引用时变量名有没有写错,以及标点符号等问题,具体可以参照教程,这里我就不多说了,给大家一个地址吧:http

    最近换了一台电脑,需要重新配置开发环境,结果卡在了第一步:jdk的环境配置上了。

    本人也是网上找到了各种资料教程,大部分的环境配置问题都可以通过这些资料教程解决,然而我是属于少部分。所以,建议先检查一下你环境变量的配置,比如path有没有配置,有没有写错,“JAVA_HOME”值有没有写错,引用时变量名有没有写错,以及标点符号等问题,具体可以参照教程,这里我就不多说了,给大家一个地址吧:http://blog.csdn.net/u013566425/article/details/24984495,这位大哥写得很详细,相信可以解决多数人的问题,如果很不幸你是少部分,那么也许你需要仔细看看下面的内容了。

    我的问题症状是,cmd中输入java、java -version都能正常显示,但是输入javac时就会提示:'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。

    我的环境配置是这样的:

    细心的你能发现什么问题吗?

    仔细看你会发现,我的JAVA_HOME变量配置在用户变量里面,而我的path配置在系统变量里面,而且此处系统变量的值引用了JAVA_HOME变量,所以你能猜出什么问题了吗?试着在系统变量里面新建一个一样的JAVA_HOME,保存退出。然后试试cmd输入javac,是不是成功了?如果是,那就恭喜你了。
    那么,为什么会这样呢?首先,在环境变量中新建‘JAVA_HOME’变量是为了引用,path中用‘%’包裹的部分就是引用,这样即使安装位置变了,只需要改JAVA_HOME就可以完成配置,很方便。
    但是为什么我之前的配置无法引用到呢?那是因为我JAVA_HOME新建位置在当前的用户变量中,但我的path配置在系统变量中。系统变量去引用用户的变量是引用不到的,这就类似于java的局部变量与全局变量的区别,在局部变量以外的区域是无法引用到局部变量的。要想该变量能随处引用,配成全局的就好了。
    展开全文
  • 07英文论文写作标点符号的正确使用-冒号.qlv 口08英文论文写作标点符号的正确使用分号.qlv 09英文论文写作详解之编辑审核.qIv 10英文论文写作步骤中的倒叙方式.qIv [ ] 11英文论文写作之时态一致.qIv 口13英文...
  • 2.回到首页,正文双栏的左边的一栏,选中左边一栏的第一句,(一定是左边栏的第一句话,也可以是选到这句话中的任意一个标点符号为止,或者是在正文起始处。这一步很重要) 3.然后点击工具栏中的 引用---脚注,不要...
  • 模版使用说明: 1、本论文模版保留了论文格式,可通过套用格式(或采用格式刷)直接使用。 2、本论文模版保留了原论文中的...参考文献的格式要求所有标点符号全为半角。 6、其余未说明之细节,参考修订的论文排版说明。
  • 命令中的特殊字符

    2013-12-06 09:12:00
    一、字符串引用符双引号和单引号 1、双引号 双引号“”通常用来表示引用一个字符串,有时能屏蔽一些标点等特殊符号。在命令中使用双引号时,一般表示引用部分是一个不可分割的整体。 通常可以理解为所有放入双引号...
  • 1.4.3 英文标点符号 筹2章 SCI论又撰写 2.1 SCI论文如何命题 2.1.1 标题的意义和作用 2.1.2 标题的构成要素 2.1.3 SCI论文命题原则 2.1.4 命题注意事项 2.2 如何署名和书写单位地址 2.2.1 署名的意义和作用 2.2.2 ...
  • SOQ-堆栈溢出问题 与问题和答案有关的资料库,主要是所贡献的内容。... 请注意,SO无法识别数字中的标点符号。 另请注意,如果您不知道问题编号,则很难找到相关材料。 src中有一些目录将其他目录分组
  • SIL语言环境数据存储库(SLDR) SIL创建了自己的所选区域设置数据存储库。 它有两个目的: 收集信息以在ScriptSource上发布,并收集信息以提交给公共语言环境数据存储库( ),该项目提供了用于...标点符号示例-书写系
  • **一定是左边栏的第一句话,也可以是选到这句话中的任意一个标点符号为止,或者是在正文起始处。这一步很重要 3.然后点击工具栏中的 引用—脚注,不要点击插入脚注,而是点这部分右下角的一个小小的按键,打开脚注...
  • 关于编写出现1064的问题 ...使用表名、列名等的符号错误,用成英文输入法下的单引号 → ’ ',而是引用该英文输入法下的 → `` 创建表中,编写列名时最后一句加入了逗号 忘记一些加入符号什么的 ...
  • 模糊检测,柔性匹配,不管抄袭者如何替换部分字符,删除部分标点符号,系统都能通过相似度来进行判定,让抄袭者无所遁形。系统采用自研的ROST Similar算法实现高速相似性检测和度量。系统采用自研的QingQing算法提取...
  • 第1章熟悉LATEX 1.1让LATEX跑起来 1.1.1LATEX的发行版及其安装 CTEX套装 TEXLive 1.1.2编辑器与周边工具 编辑器举例——TeXworks PDF阅读器 命令行工具 1.1.3“HappyTEXing”...部分习题答案 参考文献 索引
  • 正则表达式学习教程

    2011-11-16 08:56:06
    字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里...
  • 2.模糊检测,柔性匹配,不管抄袭者如何替换部分字符,删除部分标点符号,系统都能通过相似度来进行判定,让抄袭者无所遁形。系统采用自研的ROST Similar算法实现高速相似性检测和度量。系统采用自研的QingQing算法...
  • 2.模糊检测,柔性匹配,不管抄袭者如何替换部分字符,删除部分标点符号,系统都能通过相似度来进行判定,让抄袭者无所遁形。系统采用自研的ROST Similar算法实现高速相似性检测和度量。系统采用自研的QingQing算法...
  • 功能测试点

    2015-07-21 22:42:20
    标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作一个字符,而在查询的时候空格被屏蔽,导致无法查询到添加的...
  • 中文内容请使用半角中文标点符号, 尤其是逗号以及括号, 冒号, 破折号。 对于引号, 如果被引用的内容包含英文, 则使用英文引号。 空格 译文一律使用空格, 禁止使用 ...
  • 论文相似性检测工具(论文查重软件)

    千次下载 热门讨论 2010-09-28 20:16:03
    2.模糊检测,柔性匹配,不管抄袭者如何替换部分字符,删除部分标点符号,系统都能通过相似度来进行判定,让抄袭者无所遁形。系统采用自研的ROST Similar算法实现高速相似性检测和度量。系统采用自研的QingQing算法...
  • 2.模糊检测,柔性匹配,不管抄袭者如何替换部分字符,删除部分标点符号,系统都能通过相似度来进行判定,让抄袭者无所遁形。系统采用自研的ROST Similar算法实现高速相似性检测和度量。系统采用自研的QingQing算法...
  • 21 天学通 c#

    2008-07-02 22:28:43
    3.10 问与答 3.11 作业 第4天课程 使用运算符 4.1 运算符的类型 4.2 标点符号 4.3 基本的赋值运算符 4.4 数学/算术运算符 4.5 关系运算符 4.6 逻辑按位运算符 4.7 类型...
  • C语言的科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    10.1.4 考虑空格和标点符号的问题 268 10.1.5 精化单词的定义 270 10.1.6 设计记号扫描器 271 10.1.7 完成translateline的实现 272 10.1.8 定义扫描器模块接口 274 10.2 在模块中维护内部状态 276 10.2.1 全局...
  • 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里...
  • C++ Primer (第三版)(高清PDF中文版)

    热门讨论 2011-06-07 09:18:21
    6.9 处理标点符号 255 6.10 注意其他格式的字符串 258 6.11 其他string操作 261 6.12 生成文本位置map 266 6.13 创建单词排除集 276 6.14 完整的程序 279 6.15 multimap和multiset 288 6.16 栈(stack) 291 6.17 ...
  • 6.9 处理标点符号 255 6.10 注意其他格式的字符串 258 6.11 其他string操作 261 6.12 生成文本位置map 266 6.13 创建单词排除集 276 6.14 完整的程序 279 6.15 multimap和multiset 288 6.16 栈(stack) 291...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

部分引用标点符号