SequenceReplace[list,rules]
根据指定的规则或规则列表替代 list 中的序列.
SequenceReplace[list,rules,n]
只做前 n 个替换.
SequenceReplace[rules]
表示可应用于表达式的 SequenceReplace 的运算符形式.
SequenceReplace
SequenceReplace[list,rules]
根据指定的规则或规则列表替代 list 中的序列.
SequenceReplace[list,rules,n]
只做前 n 个替换.
SequenceReplace[rules]
表示可应用于表达式的 SequenceReplace 的运算符形式.
更多信息
- 在 SequenceReplace[list,pattrhs] 中,patt 可以是带有头部 List 的表达式,其中包含模式构造,如 PatternSequence、Repeated (..)、Blank (_) 和 BlankSequence (__).
- 模式 patt 也可以是一个匹配列表但本身没有头 List 的模式.
- SequenceReplace 遍历列表,测试从每个连续元素位置开始的序列. 在每个序列上,它依次尝试指定的每个转换规则. 如果有任何适用的规则,它将替换序列,然后继续遍历列表,从序列结束后的元素位置开始.
- SequenceReplace[rules][list] 等价于 SequenceReplace[list,rules].
范例
打开所有单元 关闭所有单元基本范例 (4)
SequenceReplace[{a, b, x, x, a, c}, {a, e_} :> e]SequenceReplace[{a, b, x, x, a, c}, {{a, e_} :> e, {x} -> y}]SequenceReplace[{a, b, x, x, a, c}, {{a, e_} :> e, {x} -> y}, 2]使用 SequenceReplace 的运算符形式:
SequenceReplace[{a, e_} :> e][{a, b, x, x, a, c}]范围 (4)
SequenceReplace[{1, 2, 3, 4, 5}, {_ ? EvenQ} -> 0]SequenceReplace[{1, 2, 3, 4, 5}, {{_ ? EvenQ} -> 0, {_ ? OddQ} -> 1}]SequenceReplace[{"a", "b", "a", "b", "a", "b"}, {"a", "b"} -> 1, 2]SequenceReplace[{"a", "b", "x", "a", "b", "x"}, {{"a", "b"} -> 1, {"x"} -> "y"}, 3]应用 (4)
SequenceReplace[{a, b, c}, {x_} :> {x, x, x}]SequenceReplace[{1, a, "x", 2, b, "y"}, {_Symbol, _String} -> Nothing]SequenceReplace[{1, 2, 3, 4, 5, 6}, {x_, y_} :> Sequence[y, x]]SequenceReplace[{a, a, a, b, b, a, a, c, c, c, c}, {Repeated[a_, Infinity]} :> a]属性和关系 (6)
SequenceReplace[{1, 2, 3, 4}, {2, 3} -> {a, b}]用 Sequence 而不是 List 拼接原始列表中的元素:
SequenceReplace[{1, 2, 3, 4}, {2, 3} -> Sequence[a, b]]SequenceReplace[Range[5], {{_ ? PrimeQ} -> "Prime", {_ ? EvenQ} -> "Even"}]SequenceReplace[Range[5], {{_ ? EvenQ} -> "Even", {_ ? PrimeQ} -> "Prime"}]此替换与长度为3的序列匹配,只能在长度为6的列表中执行两次:
SequenceReplace[{1, 2, 3, 4, 5, 6}, {x_, y_, z_} :> y]SequenceReplace[{a, b, 1, 2, c, d, 3, 4}, {__Symbol} -> "X"]SequencePosition[{a, b, 1, 2, c, d, 3, 4}, {__Symbol}, Overlaps -> False]SequenceCases[{a, b, 1, 2, c, d, 3, 4}, {__Symbol}, Overlaps -> False]SequenceCount[{a, b, 1, 2, c, d, 3, 4}, {__Symbol}, Overlaps -> False]对于字符列表,SequenceReplace 类似于 StringReplace:
text = "On 31/12/2003 we left, and on 5/3/2004 we came back.";StringJoin[SequenceReplace[Characters[text], {"w", "e"} -> "they"]]StringReplace[text, "we" -> "they"]SubsetReplace 匹配元素以任意顺序排列的序列:
SubsetReplace[{1, a, 2, 3, a, b, c}, {a, x_Integer} :> f[x]]SequenceReplace 只按指定顺序匹配序列:
SequenceReplace[{1, a, 2, 3, a, b, c}, {a, x_Integer} :> f[x]]相关指南
-
▪
- 重排列与重构列表
文本
Wolfram Research (2018),SequenceReplace,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SequenceReplace.html.
CMS
Wolfram 语言. 2018. "SequenceReplace." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/SequenceReplace.html.
APA
Wolfram 语言. (2018). SequenceReplace. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SequenceReplace.html 年
BibTeX
@misc{reference.wolfram_2026_sequencereplace, author="Wolfram Research", title="{SequenceReplace}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/SequenceReplace.html}", note=[Accessed: 09-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_sequencereplace, organization={Wolfram Research}, title={SequenceReplace}, year={2018}, url={https://reference.wolfram.com/language/ref/SequenceReplace.html}, note=[Accessed: 09-November-2026]}