正则表达式

正则表达式-进阶

谁说我不能喝 提交于 2020-01-15 01:06:48
正则表达式-进阶 文章目录 正则表达式-进阶 前言 探囊取物 移花接木 蓦然回首 最终考验 前言 看到这里,意味着你已经掌握了正则表达式的基础知识,能够运用正则解决一些简单的问题了。如果你不熟悉正则的基础知识,请参考前一篇博客学习。 正则表达式-基础 这部分我们将继续探究正则的进阶知识。 探囊取物 我们来看一个例子,请尝试用正则表达式匹配出其姓名和年龄。 Name:Aurora Age:18 里面夹杂着一些无关紧要的数据 Name:Bob Age:20 数据有很多种错误的格式 Name:Cassin Age:22 我们用正则的基础知识来尝试匹配,\w 匹配名字,\s 匹配空白,\d 匹配年龄。匹配的表达式为:Name:\w+\s*Age:\d{1,3} System.out.println("Name:Aurora Age:18".matches("Name:\\w+\\s*Age:\\d{1,3}")); //输出为true System.out.println("里面有一些无关紧要的数据".matches("Name:\\w+\\s*Age:\\d{1,3}")); //输出为false System.out.println("Name:Bob Age:20".matches("Name:\\w+\\s*Age:\\d{1,3}")); //输出为true System.out

06.避免创建不必要的对象

好久不见. 提交于 2020-01-15 00:41:01
前言 《Effective Java》中文第三版,是一本关于Java基础的书,这本书不止一次有人推荐我看。其中包括我很喜欢的博客园博主 五月的仓颉 ,他曾在自己的博文《给Java程序猿们推荐一些值得一看的好书》中也推荐过。加深自己的记忆,同时向优秀的人看齐,决定在看完每一章之后,都写一篇随笔。如果有写的不对的地方、表述的不清楚的地方、或者其他建议,希望您能够留言指正,谢谢。 《Effective Java》中文第三版在线阅读链接: https://github.com/sjsdfg/effective-java-3rd-chinese/tree/master/docs/notes 是什么 不必要的对象,指的是当我们需要一个对象的时候,它的功能与之前创建过的对象时相同的,那么我们可以重用之前的对象,而不是去创建一个新的。如果此时我们仍创建一个新的对象,那么它就是不必要的对象。 '对象是不可变的',在这样的前提条件下,那它总是可以被重用的。 哪里用 正则表达式 自动装箱 初始化配置 怎么实现 我们针对上方‘哪里用’中指的地方,一一列举实例,首先是 正则表达式中的实现 ,我们先来看看它每次都会创建不必要的对象的情况,代码如下: /** *使用正则表达式来判断字符串中是否包含有罗马数字 * * @Author GongGuoWei * @Email GongGuoWei01@yeah

Java正则表达式

╄→尐↘猪︶ㄣ 提交于 2020-01-14 19:44:42
一、正则表达式简介 正则表达式属于字符串功能加强,基本上所有的项目开发里面都会有正则表达式的身影。正则在很多底层的设计里面也会被大量采用。 ( Regular Expressions )最早是在Linux系统上被广泛使用的一-种字符串标准,在JDK1.4的时候才正式被Java所引用,正则表达式的出现是为了解决字符串在进行替换、拆分、匹配等方面的功能而设计出来的。 例:判断字符串是否由数字所组成 传统做法:将字符串拆分为字符数组,然后进行单个字符的依次判断 下面通过正则表达式实现: public class January_eight { public static void main ( String [ ] args ) { String str = new Scanner ( System . in ) . nextLine ( ) ; if ( str . matches ( "\\d+" ) ) { //进行正则匹配 System . out . println ( "字符串由数字组成" ) ; } else { System . out . println ( "字符串中含有非数字字符" ) ; } } } JIDK 1.4之后引入了正则表达式的概念之后,由于正则主要使用在字符串的结构处理上,所以对String类也做出了许多的改变,在当前程序中所见到的“\d+

正则表达式工具RegexBuddy

送分小仙女□ 提交于 2020-01-14 15:42:00
1 下载 RegexBuddy 并安装 安装后的界面如下: 2 切换布局 点击右上角的彩色格子图标,选择 Side by Side Layout: 这种布局的好处是,Create 面板与 Test 面板同时被展示,方便比对: 3 界面说明 4 选择编程语言 左上角的下拉框可以指定需要的编程语言: 5 解析(Create 面板) 这里用树状模型来展示对这个正则表达式的解析过程,其中的每一个节点对应着表达式中的一个元素块。每当点击其中的一个节点,就会在对应的正则表达式的部分着重显示。 这个功能在分析某些复杂的正则表达式时很有用哦O(∩_∩)O哈哈~ 6 测试(Test 面板) 6.1 指定测试范围 在 Test 面板的第一个下拉框可以选择测试的范围: 测试范围 说明 Whole File 整个文档 Page by page 按页区分 Line by line 按行区分 如果需要测试的内容超过一行,那么请选择 Whole File 或 Page by page 模式。 6.2 高亮显示 如果当前的正则表达式为 <html>(.*)</html> ,那么在 Test 面板中就会高亮显示匹配的内容(如果匹配的内容在相邻的行,则使用不同的颜色高亮显示): 6.3 捕获组 如果使用了捕获组,那么可以在 Hightlight 的下拉项中选定这些组,然后就会被加阴影显示出来啦: 6.4 匹配细节

RegexBuddy正则表达式工具

大城市里の小女人 提交于 2020-01-14 15:40:59
RegexBuddy非常的好用,而且还能生成.net的代码。 我们在使用正则匹配时,毕竟.net提供的方法中,对于多行匹配就不能用单纯的正则去实现,而我们需要把它转换成相应的类库方法进行实现。 那么RegexBuddy这个工具就很好的提供了这些生成的代码。而且,可以针对主流语言进行生成,非常的方便。 效果如下: 下面是我收集的一些使用教程: http://www.lifeba.org/arch/regexbuddy.html 一、RegexBuddy下载及安装 本站下载地址: JGsoft-RegexBuddy-v3.1.0.rar ,也可以在 http://www.regexbuddy.com/ (RegexBuddy的官网)进行最新版本的下载和正版的购买。下载后直接安装,打开界面如下: 二、工具界面 1、首先切换到 Side By Side Layout,这个布局,更方便操作。 2、界面主要包括:正则表达式、测试文本、输出结果、历史记录、Create相关面板。 三、使用介绍 打开RegexBuddy后默认载入的是上一次你所测试的正则信息,选项配置信息都会自动载入上次你所设置的内容。历史记录中显示的是你所测试过得正则信息。 1、测试正则表达式。 a、在正则表达式输入需要测试的正则,如:。可以通过上面的面板选择语言,默认是JGosft,可以指定JAVA,Python等。 b

RegexBuddy——正则

断了今生、忘了曾经 提交于 2020-01-14 15:40:10
转自:http://www.lifeba.org/arch/regexbuddy.html adam说stvent是程序员的楷模,向楷模学习! 转载请注明: 转载自 Life吧 本文永久链接地址: http://www.lifeba.org/arch/regexbuddy.html 一、RegexBuddy下载及安装 本站下载地址: JGsoft-RegexBuddy-v3.1.0.rar ,也可以在 http://www.regexbuddy.com/ (RegexBuddy的官网)进行最新版本的下载和正版的购买。下载后直接安装,打开界面如下: 二、工具界面 1、首先切换到 Side By Side Layout,这个布局,更方便操作。 2、界面主要包括:正则表达式、测试文本、输出结果、历史记录、Create相关面板。 三、使用介绍 打开RegexBuddy后默认载入的是上一次你所测试的正则信息,选项配置信息都会自动载入上次你所设置的内容。历史记录中显示的是你所测试过得正则信息。 1、测试正则表达式。 a、在正则表达式输入需要测试的正则,如:。可以通过上面的面板选择语言,默认是JGosft,可以指定JAVA,Python等。 b、测试文本面板(Test标签)输入需要测试的文本内容,如:。可以选择Line By Line、Whole File、Page By Page

python正则表达式flags参数使用

时光总嘲笑我的痴心妄想 提交于 2020-01-14 11:11:13
介绍re.I、re.DEBUG、re.S的使用,多个flags如何使用;正则表达式贪婪模式、非贪婪模式使用实例,re.search()正则表达式传变量。 C:\Users\Administrator.ZHANGHAO-PC>python Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import re >>> re.search('abC','ABC',flags=re.I) <_sre.SRE_Match object at 0x0000000001E64510> >>> >>> re.search('abC','ABC', flags=re.I ).group() ###正则匹配时,不区分大小写 'ABC' >>> patern=re.compile('abC',re.I) >>> re.search(patern,'ABC') <_sre.SRE_Match object at 0x0000000001E64510> >>> >>> re.search(patern,'ABC')

正则表达式的基本用法

十年热恋 提交于 2020-01-14 06:48:42
本文转载自: https://www.cnblogs.com/catch/archive/2013/05/25/3098585.html 作者:catch 转载请注明该声明。 Perl 有很多其它语言所没有的特性,这其中对正则表达式( regular expression )的强大支持是它最为突出的一个亮点。正则表达式使得 perl 在处理文本时具有非常强大的优势:快速,灵活而且很可靠,甚至可以说,强大文本处理能力,是 perl 在众多语言中最为闪耀的一个特点。 因此学习 perl 的过程,必然也是学习正则表达式的过程,这或许多少给 perl 的学习增加了些少的负担,但好在正则表达式并不是 perl 所独有的, 它是一门使用非常广泛的语言,在很多工具及其它编程语言中都有广泛的支持,比如:grep,awk,sed,vi 等。 它是如此的常见,以致于编程人员在很多场合都无可避免的要与之打交道,因此掌握好正则表达的好处是非常明显的,好在它的语法也很简单,学习起来也不算太难。 在 Perl 或其它一些语言及工具中,正则表达式通常也会叫为“模式"(pattern),正则表达式本质上来说是一个字符串模板,用来确认某个字符串是否符合这个模板的格式,任何一个字符串,要么符合这个模板,要么不符合这个模板。具体到 在Perl中,正则表达式是用"/"围起来的,比如: ($string =~ /

最全的正则表达式

馋奶兔 提交于 2020-01-14 00:18:08
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*

Rasa教程系列-NLU-3-实体抽取

风流意气都作罢 提交于 2020-01-14 00:02:01
文章目录 介绍 自定义实体 抽取位置、日期、人名、组织 日期、金额、时长、距离和序号 正则表达式 将自定义特征传给CRFEntityExtractor 介绍 目前1.6.1版本支持的extractors如下: Component Requires Model Notes CRFEntityExtractor sklearn-crfsuite conditional random field 适合训练自定义实体的训练 SpacyEntityExtractor spaCy conditional averaged perceptron 提供预训练实体 DucklingHTTPExtractor running duckling context-free grammar 提供预训练实体 MitieEntityExtractor MITIE structured SVM 适合训练自定义实体的训练 EntitySynonymMapper existing entities N/A 进行同义词映射 如果pipeline包含一个或者一个以上的上述组件,训练模型的输出会包含被抽取出来的实体及其一些metadata(这些数据记录着哪个组件抽取出该实体)。 processors 字段包含更改每个实体的组件的名称 注意: value 字段可以与文本中出现的内容不同。如果使用同义词