一键生成正则表达式,在线生成正则表达式
学术论文写作——Corpus
????????语料库分析可分为在线查询和离线工具,off-line Corpus Analysis tools有AntConc和CORPUS,on-line 有美国当代英语语料库COCA: 。工具使用得当往往会达到事半功倍的效果,因此接下来对这两款工具的使用分别进行介绍记录。
????????PatternBuilder是一款专门用于辅助编写正则表达式以方便词性赋码语料库检索的工具,可以很方便地编写复杂的正则表达式。
????????PatternBuilder是自动生成正则表达式的工具,帮助用户从词性符码语料库中提取各种语言特征。该工具可以生成简单的表达式如方位名词(\S+_NNL2\s)或较复杂的结构的表达式如被动语态(\S+ VB\w*\s(\S+ [RX]\w+\s) \S+_V\wN\s),用户可以测试并保存自己编写的表达式。具体用法可见 梁茂成词性赋码语料库的检索与正则表达式的编写pdf 。
????????用法示例如下图:
(1)显示赋码首字母,如名词以N开头、动词以V开头。
(2)包含特定赋码首字母的各种语言特征。
(3)用户自定义的各种语言特征,如被动语态等。
(4)显示所选语言特征的正则表达式,用户也可在此编辑表达式。
(5)按正则表达式检索语料库后的索引行,用以验证表达式的正误。
????????同时,为了尽可能做到少有遗漏,我们在得到基本的表达式后常常需要进行更细致的分析和推敲。我们可以利用 PatternBuilder 的【Get (Pattern) 】按钮,在表达式中使用一个可选的(optional)组块。
1、索引工具
????????单击File菜单,选择Open File(s).. 或Open Di..加载一个或多个要分析的文件,加载出来的文件会在主窗户的左边“Corpus Files”框里显示出来。
????????在下方Search Term下的输入框里输入搜索词,单击“start”。以“work”为例,可以看到三个语料库中检索到了973条结果。这种结果是以KWIC(Key Word in Context)模式显示的。如果需要调整检索词两边显示的字符数,可以使用"Search Window Size"进行调整(调整完成后单击start重新检索)。
????????除了检索整个词外,还可以用通配符进行高级检索。除了检索整个词外,还可以用通配符进行高级检索。
????????我们还可以对检索的结果进行排序。使用Kwic Sort下的Level对检索结果排序,0是指该检索词,1L指检索词左边第一个词。2R指检索词右边第二个词。Level共有三级,可根据需要进行勾选。设置完成后单击“Sort”即可进行分类排序。
2、索引检索及定位
????????单击“Advanced”,勾选“Use search term(s) from list below”。就检索下面框内的单词。可以手动输入多个单词,也可以直接加载一个txt词表用来检索。注意每个单词独立成行。设置完成后单击“Apply”。
????????而高级设置中的“Use Context Words and Horizons”是指检索上下文词和该词出现的范围。例如,在Context Words中输入“with”,单击add添加,之后将该词出现的范围设置成“From 3L to 3R”。就可以看到work从左边数3个词到右边数3个词出现with的所有句子。
3、词丛 Clusters/N-Grams
????????通过Clusters这一功能,可以把检索词及其临近的词生成一个列表,并且可以根据自身的需求进行排序分析。
????????N元是什么呢?简单来说,N元指单词的N 元。比如,“This is a pen.”这句话中二元是”this is”, “is a”和”a pen”。三元则是”this is a”和”is a pen”。因此,一个大的文件将会产生大量的N 元。N-Grams与Clusters功能操作起来很像。
4、搭配 Collocates
????????搭配功能,简单来说,可以生成检索词的有序的单词列表,用来查看搭配词与检索词相关性。
????????由于搭配功能需在生成词单的基础上才可使用,因此会自动弹出生成词单的对话框,我们单击确定即可。
5、词单 Word List
????????打开AntConc,加载语料库文件后,单击“Word List”选项卡,之后单击“Start”,即可生成词单。 在界面上方可以看到形符和类符的数量。所有的单词默认按照词频来排序,包含序号(Rank)、词频(Freq)、单词(Word)的统计信息。
????????界面中有一列是Lemma Word Form(词型)。该功能的启用要加载词元列表(Lemma List)。在菜单栏“Tool Preferences”中的“Word List”中,可以在“Lemma List”中加载词元列表。
????????在菜单栏“Tool Preferences”中的“Word List”中,可以对检索单词进行过滤。例如,输入“that”和“this”,选择“Use specific words below”,在词单页面仅能查看“that”和“this”的相关结果。若选中“Use a stoplist below”,则会在词单中排除“that”和“this”的相关结果。选择“Use all words”不会对结果产生变化。
6、实际例子
1)What is the word most frequently used at the immediate left/right of 'classification'?
COCA
Antconc
参考链接
1、
2、国科大学术论文写作
Excel RegexBuddy能自动生成正则表达式吗
两个都不能自动生成正则
Excel中使用VBA可以用正则表达式
Regexbuddy可以测试正则,可以把正则表达式转换不同的语言,如PHP、Java,能自动生成匹配需要的语句,并且还能把正则的格式变换成复合该语言的字串。但是不能自动生成正则表达式字串
例如:
根据上面的正则语句自动生成了下面的语句。但是上面的正则语句不是自动生成的,是要人工输入的。
正则表达式怎么在EXCEL使用
工具/材料:Microsoft Office Excel2016版,Excel表格。
1、首先选中Excel表格,双击打开。
2、然后在该界面中,选中要使用正则表达式的单元格。
3、再者在该界面中,公式栏中输入正则表达式的公式“=RegexString(A1,"([\d]+)",1)”。
4、其次在该界面中,单元格里显示正则表达式结果。
5、继续在该界面中,选中单元格,向下拖动。
6、最后在该界面中,成功显示正则表达式结果。
快速入门|Python DataFrame +正则表达式处理数据实例一则
提取三个版本的程序testing log中的test case名和测试结果,并对比不同版本程序的每一个case的结果,再计算每个test case在三个版本中的失败率。
//不熟悉如何写正则表达式的参考 我的上一篇文章
注意方法括号内的语法为【r"你的正则表达式"】
re.compile() 方法生成一个正则表达式对象,调用此对象的方法.findall(),输入待处理的string,得到所有匹配结果。返回值类型为list,例:Output: ['123456789', '987654321']
若你的正则表达式有多个capture group,则为list包括的tuple。
直接用list创建DataFrame对象,参数为list和你给出的列名,在这里‘case’为第一列的列名,第二列列名通过传入的变量version确定
得到结果类如表格
因为程序testcase的ID本身就是唯一的,用作index方便join,所以我们不再需要默认的数字index
使用df的 .join() 方法,将所有版本的df在'case'列,也就是我们的index列进行left join
最后,我们返回dfs[0],也就是完成全部左交后的总结果。
输出结果如下:
java正则表达式怎么书写?
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
下面介绍具体的方法。
1、步骤一 ?: 新建一个工程和类
我们在这个类中开发相关的代码,先看看 java.util.regex 这个包吧。
2、步骤二 : 类 Pattern 的使用
类Pattern ,?其一个对象就代表一种指定的正则表达式,我们通过这个类和一些正则表达式的规则来生成自己想要的字符串匹配规则!
这个类,你无法通过 new 来创建对象,其提供了一个静态方法?compile("正则规则串")来创建对象, 比如我们想要一个以?"java" 开头的字符串匹配规则,我们会用如下代码 Pattern 对象 :
Pattern pattern = Pattern.compile("^java");
注意 :?^?这个符号是正则表达式中的规则,表示字符串的开头!关于其他规则,我们后面会有相关经验给大家逐一介绍!
3、步骤三 : 类 Matcher 的使用
类 Matcher,?代表一个串在特定Pattern对象下的匹配结果,我们通过这个结果可以知道这个串是否符合我们的要求 (我们的具体要求在 Pattern 对象中体现!)。使用方法为 :
//?先构建一个特定的?Pattern?对象
Pattern?pattern?=?Pattern.compile("^java");?
//?调用?Pattern?对象的?matcher?方法,传入一个串,得到匹配结果!
Matcher?matcher?=?javaPrefixPattern.matcher("一个字符串");
4、步骤四 : 测试和总结
运行代码,查看程序运行效果!正则表达式的整个使用框架就是这样,其不同的应用场景基本就是不同的匹配规则!
总结 :正则表达式的彪悍,主要在于其很多成熟的规范的语义规则,通过这些规则的灵活使用,我们可以把一种复杂的匹配需求用一个规则串表达出来!