重复元素的模式匹配

2021-02-05 22:13

是否有一种模式可以匹配一行中出现两次以上的重复元素?为了示例,假设我想使用模式匹配来删除后续的重复:l={1,2,2,3,4};l/{b,x,x,r,r}-gt;{b,r}(*

解答动态

  • 使用Longest pattern命令查找与模式匹配的最长重复序列。
    l={1,2,2,3,4};l/。{b,x,Longest[(x)…],r}:gt;序列[]] {1,3,4}
    } 尝试如下:
    l={1,2,2,2,3,4};l/。{b,x,(x)…,r}-gt;{b,r}(*{1,3,4}*)

    • 您还可以考虑使用Repeated的双参数形式,以便更精细控制:
      {1, 2, 2, 3, 4} /. {a,b}:gt;序列[]] {1,3,4} 不是模式匹配,而是相互匹配方式:
      箱[拆分@l2,{x}:>;x] {1,3,4}

      • End

      免责声明:

      本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。