对于给定的字符串“狐狸跳过兔子”,以下字符串被视为顺序字分组
狐狸跳过兔子, 狐狸跳过了, 狐狸跳了过来,任何人都可以建议或提供合适的正则表达式。我尝试了几种
\b\w*\b\s+(\b\w*+\b\s?
但我似乎无法获得一个返回完整预期结果集的表达式。
此致 SOliver。
答案 0 :(得分:2)
键盘:http://codepad.org/E4rywXD8
$s = "the fox jumped over the rabbit";
$s = split(' ', $s);
$result = array();
foreach ($s as $key => $word)
{
$r = array();
for ($i = $key; $i < count($s); $i++)
{
$r[] = $s[$i];
if(count($r) > 1) $result[] = implode(' ', $r);
}
}
答案 1 :(得分:1)
这是一个使用标准输入/输出的正则表达式的Ruby脚本:
@map = {}
def scan(str)
if(str && str=~/\w+\s\w+/)
@map[str] = nil
scan(str.sub(/\s?\w+$/,""))
scan(str.sub(/^\w+\s?/,""))
end
end
scan(gets)
puts @map