newstr =
strrep (str, ptn, rep)
¶newstr =
strrep (cellstr, ptn, rep)
¶newstr =
strrep (…, "overlaps", val)
¶替换所有出现的图案ptn在字符串中str用绳子代表并返回结果。
可选参数重叠
确定图案是否可以在中的每个位置匹配str(true),或仅用于完全模式的唯一出现(false)。默认值为true。
s也可以是字符串的元胞数组,在这种情况下,对每个元素进行替换,并返回元胞数组。
用例
strrep(“这是一个测试字符串”、“is”、“&%$”)⇒ “测试字符串&%$&%$
newstr =
erase (str, ptn)
¶删除所有出现的ptn在内部str.
str和ptn可以是普通字符串、字符串的元胞数组或字符数组。
示例
##字符串,单模式擦除(“Hello World!”,“World”)⇒ “你好!”##cellstr,single patternerase({“你好”,“世界!”},“世界”)⇒ {“你好”,“!”}#string,multiple patternserase(“Octave解释器太棒了”,…{“解释器”,“The”})⇒ “Octave太棒了”##cellstr,multiple patternserase({“The”,“Octave-explorer”,“is mexible”},…{“interpreter”,“The”})⇒ {“”、“octave”、“太棒了”}
编程说明:擦除
当出现重叠时,删除跨接中图案的第一个实例。例如
擦除(“abababa”,“aba”)⇒ b
有关处理重叠的信息,详见串替换
.
[s, e, te, m, t, nm, sp] =
regexp (str, pat)
¶[…] =
regexp (str, pat, "opt1", …)
¶正则表达式字符串匹配。
搜索拍打以UTF-8编码str并返回任何匹配项的位置和子字符串,如果没有,则返回空值。
匹配的图案拍打可以包括任何标准regexoperator,包括:
.
匹配任何字符
* + ? {}
重复运算符,表示
*
匹配零次或多次
+
匹配一次或多次
?
匹配零次或一次
{n}
完全匹配n次
{n,}
火柴n或更多次
{m,n}
之间匹配m和n次
[…] [^…]
列出运算符。该模式将与之间列出的任何字符匹配[
和]
。如果第一个字符是^
则模式反转,除括号之间列出的字符外的任何字符都将匹配。
下面定义的转义序列也可以在列表运算符中使用。例如,浮点数字的模板可能是d
.
() (?:)
分组运算符。第一种形式(仅括号)也会创建一个符号。
|
交替运算符。匹配所选正则表达式中的一个。备选方案必须从分组运算符分隔()
在上面
^ $
锚固运算符。要求在开始时出现模式(^
)orend($
)字符串的。
此外,以下转义字符具有特殊含义。
d
匹配任意数字
D
匹配任何非数字
s
匹配任何空白字符
S
匹配任何非空白字符
w
匹配任意单词字符
W
匹配任何非单词字符
\<
匹配单词的开头
\>
匹配单词的末尾
B
单词内匹配
支持说明:为了与兼容MATLAB,转义序列in拍打(例如。,n
=>换行符)被扩展,即使当拍打已用单引号定义。要禁用扩展,请在转义序列之前使用第二个反斜杠(例如,“\\n”),或者使用regexptranslate
作用
的输出正则表达式
默认以下顺序
每个匹配子字符串的起始索引
每个匹配子字符串的结束索引
从包围的每个匹配令牌的范围(…)
在里面拍打
每个匹配的文本的元胞数组
匹配的每个符号的文本的元胞数组
一个结构体,包含每个匹配的命名符号的文本,名称用作字段名。命名令牌表示为Name
.
匹配未返回的文本的元胞数组,即,如果您根据拍打.
特定的输出参数或输出参数的顺序可以从附加的opt参数。这些是字符串以及输出参数和可选参数之间的对应关系
开始 |
s | ||
终止 |
e | ||
tokenExtents |
te | ||
火柴 |
m | ||
令牌 |
t | ||
Name |
纳米 | ||
分裂 |
服务提供商 |
其他参数总结如下。
只返回第一次出现的模式。
使匹配的大小写敏感。默认
或者,在模式中使用(?-i)。
将模式与字符串匹配时忽略大小写。
或者,在模式中使用(?i)。
匹配字符串开头和结尾的定位字符。(默认值)
或者,在模式中使用(?-m)。
匹配行首和行尾的定位字符。
或者,在图案中使用(?m)。
图案.
匹配包括换行符在内的所有字符。默认
或者,在模式中使用(?s)。
图案.
匹配除换行符以外的所有字符。
或者,在模式中使用(?-s)。
模式中的所有字符,包括空格,都是重要的,并用于模式匹配。默认
或者,在模式中使用(?-x)。
该模式可能包括任意空白,也可能包括以字符“”开头的注释#’.
或者,在模式中使用(?x)。
不返回长度为零的匹配项。默认
返回零长度的匹配项。
regexp('a','b*','emptymatch')
退货[1 2]
因为有零个或更多b
位置1和字符串末尾的字符。
堆栈限制注意:模式搜索是用递归函数完成的,当有大量匹配时,递归函数可能会溢出程序堆栈。例如
regexp(repmat('a',1,1e5),'(a)+')
可能导致segfault。作为一种替代方案,考虑构建减少匹配数量的模式搜索(例如,通过创造性地使用setcomplement),然后用连续的正则表达式
搜索。
Octave的正则表达式
实现基于Perl兼容正则表达式库(https://www.pcre.org/). 更全面的列表正则表达式
运算符语法详见PCRE语法快速参考摘要.
[s, e, te, m, t, nm, sp] =
regexpi (str, pat)
¶[…] =
regexpi (str, pat, "opt1", …)
¶不区分大小写的正则表达式字符串匹配。
搜索拍打以UTF-8编码str并返回任何匹配项的位置和子字符串,如果没有,则返回空值。详见正则表达式
,以获取有关搜索模式语法的详细信息。
详见: 正则表达式.
outstr =
regexprep (string, pat, repstr)
¶outstr =
regexprep (string, pat, repstr, "opt1", …)
¶替换出现的图案拍打在里面一串具有repstr.
该模式是一个正则表达式,如所述正则表达式
详见正则表达式
.
所有字符串都必须是UTF-8编码的。
替换字符串可能包含$i
,它替换匹配字符串中的第i组圆括号。例如,
regexprep(“Bill Dunn”,“(\w+)(\w+)”,“$2,$1”)
退货邓恩,比尔
的参数之外的参数正则表达式
是
仅替换第一次出现的拍打结果。
此参数是为了兼容而存在的,但会被忽略。
支持说明:为了与兼容MATLAB,转义序列in拍打(例如。,n
=>换行符)被扩展,即使当拍打已用单引号定义。要禁用扩展,请在转义序列之前使用第二个反斜杠(例如,“\\n”),或者使用regexptranslate
作用
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-1