newstr = strrep (str, ptn, rep) ¶newstr = strrep (cellstr, ptn, rep) ¶newstr = strrep (…, "overlaps", val) ¶将字符串 str 中所有出现的模式 ptn 替换为字符串 rep,并返回结果。
可选参数 "overlaps" 决定模式是否可以在 str 的每个位置匹配(true),还是仅匹配完整模式的唯一出现(false)。默认值为 true。
s 也可以是字符串的元胞数组,在这种情况下会对每个元素进行替换,并返回一个元胞数组。
示例:
strrep ("This is a test string", "is", "&%$")
⇒ "Th&%$ &%$ a test string"
newstr = erase (str, ptn) ¶删除 str 中所有出现的 ptn。
str 和 ptn 可以是普通字符串、字符串元胞数组或字符数组。
示例
## 字符串,单个模式
erase ("Hello World!", " World")
⇒ "Hello!"
## 元胞字符串,单个模式
erase ({"Hello", "World!"}, "World")
⇒ {"Hello", "!"}
## 字符串,多个模式
erase ("The Octave interpreter is fabulous", ...
{"interpreter ", "The "})
⇒ "Octave is fabulous"
## 元胞字符串,多个模式
erase ({"The ", "Octave interpreter ", "is fabulous"}, ...
{"interpreter ", "The "})
⇒ {"", "Octave ", "is fabulous"}
编程说明:当存在重叠出现时,erase 删除字符串中模式的第一个实例。例如:
erase ("abababa", "aba")
⇒ "b"
有关处理重叠的详细信息,请参阅 strrep。
[s, e, te, m, t, nm, sp] = regexp (str, pat) ¶[…] = regexp (str, pat, "opt1", …) ¶正则表达式字符串匹配。
在 UTF-8 编码的 str 中搜索 pat,返回所有匹配项的位置和子字符串,若无匹配则返回空值。
匹配模式 pat 可以包含任何标准的正则表达式运算符,包括:
.匹配任意字符
* + ? {}重复运算符,表示
*匹配零次或多次
+匹配一次或多次
?匹配零次或一次
{n}精确匹配 n 次
{n,}匹配 n 次或更多
{m,n}匹配介于 m 和 n 次之间
[…] [^…]列表运算符。模式将匹配 "[" 和 "]" 之间列出的任意字符。如果第一个字符是 "^",则模式取反,匹配任何不在括号内列出的字符。
下面定义的转义序列也可以在列表运算符中使用。例如,浮点数的模板可以是 [-+.\d]+。
() (?:)分组运算符。第一种形式(仅括号)还会创建一个标记(token)。
|交替运算符。匹配多个可选正则表达式中的一个。备选方案必须由上面的 () 分组运算符界定。
^ $锚定运算符。要求模式出现在字符串的开头(^)或结尾($)。
此外,以下转义字符具有特殊含义。
\d匹配任意数字
\D匹配任意非数字字符
\s匹配任意空白字符
\S匹配任意非空白字符
\w匹配任意单词字符
\W匹配任意非单词字符
\<匹配单词的开头
\>匹配单词的结尾
\B匹配单词边界(在 \b 不匹配的位置匹配)
有关支持的选项的完整说明,请使用 help regexp。
另请参阅: regexpi,regexprep,regexptranslate.
[s, e, te, m, t, nm, sp] = regexpi (str, pat) ¶[…] = regexpi (str, pat, "opt1", …) ¶不区分大小写的正则表达式字符串匹配。
在 UTF-8 编码的 str 中搜索 pat,返回所有匹配项的位置和子字符串,若无匹配则返回空值。有关搜索模式语法的详细信息,请参阅 regexp。
另请参阅: regexp.
outstr = regexprep (string, pat, repstr) ¶outstr = regexprep (string, pat, repstr, "opt1", …) ¶将 string 中出现的模式 pat 替换为 repstr。
该模式是 regexp 中记录的正则表达式。请参阅 regexp。
所有字符串必须是 UTF-8 编码。
替换字符串可以包含 $i,它会替换为匹配字符串中第 i 对括号的内容。例如,
regexprep ("Bill Dunn", '(\w+) (\w+)', '$2, $1')
返回 "Dunn, Bill"
除 regexp 的选项外,还有以下选项:
只替换结果中第一次出现的 pat。
该选项仅为兼容性而存在,但会被忽略。
实现说明:为了与 MATLAB 兼容,pat 中的转义序列(例如 "\n" => 换行符)即使 pat 是用单引号定义的,也会被展开。要禁用展开,请在转义序列前使用第二个反斜杠(例如 "\\n"),或使用 regexptranslate 函数。
str = regexptranslate (op, s) ¶将字符串转换为可用于正则表达式的形式。
这包括通配符替换或特殊字符转义。
行为由 op 控制,它可以取以下值:
"wildcard"通配符 .、* 和 ? 被替换为适用于正则表达式的通配符。例如:
regexptranslate ("wildcard", "*.m")
⇒ '.*\.m'
"escape"对正则表达式有特殊意义的字符 $.?[] 会被转义,以便按字面意思处理。例如:
regexptranslate ("escape", "12.5")
⇒ '12\.5'
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4