使用正则表达式替换文档单词中的文本
文本分析工具箱™为常见的文本预处理步骤提供函数。例如,要删除标点和符号字符,请使用erasePunctuation
或者用波特的词干去掉词干,用normalizeWords
.有关更多信息,请参见文本数据准备.
替换所有出现的正则表达式newDocuments
= regexprep (文档
,表达式
,取代
)表达式
用…的话来说文档
带着文本取代
.
该函数独立匹配每个单词。匹配不需要跨越整个单词。
替换以“s”
,最后“e”
,且两者之间至少有一个字符。要匹配整个单词,请使用“^”
匹配单词和的开头“$”
匹配单词的末尾。
文件= tokenizedDocument ([...一个短句的例子第二个短句])
documents = 2x1 tokenizedDocument: 6个token:一个短句的例子4个token:第二个短句
表达=“^ (\ w +) e $”;取代=“东西”;newDocuments = regexprep(文档、表达式替换)
newDocuments = 2x1 tokenizedDocument: 6个令牌:一个简短的例子4个令牌:第二个简短的东西
如果你不使用“^”
和“$”
,则可以匹配单词的子字符串。用“_”替换所有元音字母。
表达=”“五个母音字母;取代=“\ _”;newDocuments = regexprep(文档、表达式替换)
newDocuments = 2x1 tokenizedDocument: 6 tokens: _n _x_mpl_ _f_ sh_rt s_nt_nc_ 4 tokens: _ s_c_nd sh_rt s_nt_nc_ . newDocuments = 2x1 tokenizedDocument: 6 tokens: _n _x_mpl_ _f_ sh_rt s_nt_nc_
替换单词的变化“走”
通过捕捉后面的字母“走”
.
文件= tokenizedDocument ([“我走了”“他们走了”“我们走”])
2 token:我走2 token:他们走3 token:我们在走
表达=“走”(\ w *);取代=“提升1美元”;newDocuments = regexprep(文档、表达式替换)
newDocuments = 3x1 tokenizedDocument: 2 token:我提升2 token:他们提升3 token:我们在提升
文档
- - - - - -输入文档tokenizedDocument
数组输入文档,指定为tokenizedDocument
数组中。
表达式
- - - - - -正则表达式正则表达式,指定为字符向量、字符向量的单元格数组或字符串数组。每个表达式可以包含指定要匹配的模式的字符、元字符、操作符、标记和标志str
.
下表描述了正则表达式的元素。
元字符
元字符代表字母、字母范围、数字和空格字符。用它们来构造一个通用的字符模式。
元字符 |
描述 |
例子 |
---|---|---|
|
任何单个字符,包括空白 |
|
|
方括号内包含的任何字符。以下字符按字面意思处理: |
|
|
方括号内不包含的任何字符。以下字符按字面意思处理: |
|
|
范围内的任何字符 |
|
|
任何字母、数字或下划线字符。对于英文字符集, |
|
|
任何非字母、数字或下划线的字符。对于英文字符集, |
|
|
任何空白字符;相当于 |
|
|
任何非空白字符;相当于 |
|
|
任何数字;相当于 |
|
|
任何数字字符;相当于 |
|
|
八进制值的特征 |
|
|
十六进制值的特征 |
|
字符表示
操作符 |
描述 |
---|---|
|
报警(嘟) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
任何在正则表达式中具有特殊含义的字符,您希望按字面意义匹配(例如,use |
量词
限定符指定模式在匹配文本中必须出现的次数。
量词 |
表达式发生的次数 |
例子 |
---|---|---|
|
连续0次或更多次。 |
|
|
0乘以1乘以。 |
|
|
连续1次或更多。 |
|
|
至少
|
|
|
至少
|
|
|
完全 相当于 |
|
量词可以以三种方式出现,如下表所示。问表示上表中的任何量词。
模式 |
描述 |
例子 |
---|---|---|
|
贪婪表达式:匹配尽可能多的字符。 |
考虑到文本
|
|
惰性表达式:匹配尽可能少的字符。 |
考虑到文本
|
|
所有格表达式:尽可能匹配,但不要重新扫描文本的任何部分。 |
考虑到文本 |
分组操作符
分组操作符允许您捕获令牌、将一个操作符应用于多个元素或在特定组中禁用回溯。
分组操作符 |
描述 |
例子 |
---|---|---|
|
对表达式和捕获标记的元素进行分组。 |
|
|
组,但不捕获令牌。 |
没有分组, |
|
组自动。不要在组内回溯以完成匹配,也不要捕获令牌。 |
|
|
匹配表达式 如果有匹配 您可以包括 |
|
锚
表达式中的锚与输入文本或单词的开头或结尾匹配。
锚 |
匹配…… |
例子 |
---|---|---|
|
输入文本的开头。 |
|
|
输入文本的结束。 |
|
|
单词的开头。 |
|
|
一个单词的结尾。 |
|
看看断言
环视断言查找紧跟在预期匹配之前或之后但不属于匹配部分的模式。
指针保持在当前位置,而对应于测试
表达式不会被捕获或丢弃。因此,前向断言可以匹配重叠的字符组。
看看断言 |
描述 |
例子 |
---|---|---|
|
向前查找匹配的字符 |
|
|
提前查找不匹配的字符 |
|
|
查找匹配的字符 |
|
|
查找不匹配的字符 |
|
如果指定了前向断言之前一个表达式,相当于一个逻辑运算和
.
操作 |
描述 |
例子 |
---|---|---|
|
匹配两个 |
|
|
匹配 |
|
逻辑和条件运算符
逻辑运算符和条件运算符允许您测试给定条件的状态,然后使用结果来确定下一个匹配的模式(如果有的话)。这些操作符支持逻辑的金宝app或
,如果
或如果/其他
条件。
条件可以是标记、查找操作符或表单的动态表达式(? @cmd)
.动态表达式必须返回逻辑或数字值。
条件运算符 |
描述 |
例子 |
---|---|---|
|
匹配表达式 如果有匹配 |
|
|
如果条件 |
|
|
如果条件 |
|
令牌运营商
令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。您可以通过标记在文本中的顺序(序数标记)引用标记,或者为标记分配名称,以便于代码维护和输出可读。
序数牌运营商 |
描述 |
例子 |
---|---|---|
|
在标记中捕获与括起来的表达式匹配的字符。 |
|
|
匹配 |
|
|
如果 |
|
叫牌运营商 |
描述 |
例子 |
---|---|---|
|
在命名标记中捕获与所包含表达式匹配的字符。 |
|
|
匹配引用的令牌 |
|
|
如果找到指定的令牌,则进行匹配 |
|
请注意
如果表达式有嵌套的括号,MATLAB®捕获与最外层圆括号集对应的标记。例如,给定搜索模式”(和(y |奖赏))”
, MATLAB创建令牌“安德鲁”
但不是“y”
或“报答”
.
动态的正则表达式
动态表达式允许您执行MATLAB命令或正则表达式来确定要匹配的文本。
动态表达式的括号不创建捕获组。
操作符 |
描述 |
例子 |
---|---|---|
|
解析 当解析, |
|
|
执行表示的MATLAB命令 |
|
|
执行表示的MATLAB命令 |
|
在动态表达式中,使用下列操作符来定义替换文本。
替换操作符 |
描述 |
---|---|
|
当前匹配的输入文本的一部分 |
|
当前匹配之前的输入文本的一部分 |
|
当前匹配后面的输入文本的一部分(使用 |
|
|
|
叫牌 |
|
当MATLAB执行命令时返回的输出, |
评论
字符 |
描述 |
例子 |
---|---|---|
(? #评论) |
在正则表达式中插入注释。当匹配输入时,注释文本被忽略。 |
|
搜索的旗帜
搜索标志修改匹配表达式的行为。在表达式中使用搜索标志的另一种方法是传递选项
输入参数。
国旗 |
描述 |
---|---|
(? -我) |
匹配字母大小写(默认为 |
(我)? |
不匹配字母大小写(默认为 |
(?) |
匹配点( |
(? - s) |
用非换行符的任何字符匹配模式中的点。 |
(? - m) |
匹配 |
(?) |
匹配 |
(? - x) |
在匹配时包括空格字符和注释(默认)。 |
x (?) |
匹配时忽略空格字符和注释。使用 |
标志修改的表达式可以出现在括号后面,例如
(?我)\ w *
或在括号内,用冒号与标志分开(:
),比如
(?我:\ w *)
后一种语法允许您更改较大表达式的部分行为。
数据类型:字符
|细胞
|字符串
取代
- - - - - -替换文本替换文本,指定为字符向量、字符向量单元格数组或字符串数组,如下所示:
如果取代
是单字符向量和表达式
是字符向量的单元格数组吗regexprep
对每个表达式使用相同的替换文本。
如果取代
单元格数组是N
特征向量和表达式
是单个字符向量吗regexprep
尝试N
匹配和替换。
如果两个取代
和表达式
是字符向量的单元格数组,那么它们必须包含相同数量的元素。regexprep
对每一个取代
元素及其对应的元素表达式
.
替换文本可以包含规则字符、特殊字符(如制表符、换行符)或替换操作符,如下表所示。
替换操作符 |
描述 |
---|---|
|
当前匹配的输入文本的一部分 |
|
当前匹配之前的输入文本的一部分 |
|
当前匹配后面的输入文本的一部分(使用 |
|
|
|
叫牌 |
|
当MATLAB执行命令时返回的输出, |
操作符 |
描述 |
---|---|
|
报警(嘟) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
任何在正则表达式中具有特殊含义的字符,您希望按字面意义匹配(例如,use |
数据类型:字符
|细胞
|字符串
newDocuments
——输出文档tokenizedDocument
数组输出文档,作为tokenizedDocument
数组中。
文本分析工具箱提供常用文本预处理步骤的功能。例如,要删除标点和符号字符,请使用erasePunctuation
或者用波特的词干去掉词干,用normalizeWords
.有关更多信息,请参见文本数据准备.
取代
|decodeHTMLEntities
|eraseTags
|eraseURLs
|erasePunctuation
|removeWords
|removeShortWords
|removeLongWords
|normalizeWords
|tokenizedDocument
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。