【发布时间】:2015-05-11 20:54:26
【问题描述】:
我想知道是否有办法在 Octave / matlab 中进行模式匹配?我知道 Maple 10 有执行此操作的命令,但不确定我需要在 Octave / Matlab 中做什么。所以如果一个数字是12341234123412341234,那么模式匹配就是1234。我试图找到重复生成整个字符串的最短模式。
请注意:数字(仅使用数字)不会这么简单。另外,我不会提前知道模式(这就是我想要找到的)。请参阅下面的Maple 10 example,它表明该模式不是提前知道的,但该命令会找到该模式。
Maple 10 模式匹配示例:
ns:=convert(12341234123412341234,string);
ns := "12341234123412341234"
StringTools:-PrimitiveRoot(ns);
"1234"
如何在 Octave / Matlab 中做到这一点? Ps:我使用的是 Octave 3.8.1
【问题讨论】:
-
没有人会去查找 Maple 示例。请在问题中提供相关信息。例如,您应该添加命令应该为您找到模式...
-
模式的长度是否已知且固定?输入字符串是否仅包含模式或其他字符?
-
我的问题是:字符串可以是
1234912348123471234612345吗?想要找到的模式也可以是1234吗? -
嗯,还是不清楚。如果可能有多种模式,您想检测哪一种:最长的一种?出现次数最多的模式?那么最小长度是多少?想象一下
1234123412341234123比你找到的1234四倍,但123五倍,实际上1234123412341234123也是一种模式。请提供一个更好的示例,涵盖所有特殊情况。 -
但是 '12341234123412341234 ' is '12341234123412341234 ' 的最长模式可能是 '1234123412341234123 ' - 所以如果你陈述你的真实输入并不像您的示例,请发布您的真实输入:)
标签: regex matlab pattern-matching octave maple