爆炸的首字母缩略词以确保合成器正确读取它们吗?
-
04-10-2019 - |
题
如果我为语音合成器喂食(在这种情况下为节日,但它适用于所有文本):
“在美国的USPGA锦标赛上,英国广播公司的记者参加了MIA”。它上写着“在美国的USPGA锦标赛上,英国广播公司的记者去了MIA”。
换句话说,我想,由于它是一组辅音,因此它正确地读出“ BBC”,但用其他辅音读出“单词”。
我想最简单的事情是通过一个查找2个或更多大写字母的PHP脚本运行它,然后简单地将单词“爆炸”到空间中,例如USPG A。
我意识到这会导致“我告诉他不要那样做”之类的事情,但在新闻报道中往往会少发生。
这是事;我可以“爆炸”一个单词,问题是,我是那些尝试了数月尝试的人之一,但他们无法使自己的头部围绕某些方面的某些方面。在这种情况下,它正在寻找:两个或更多字母在首都彼此相邻。
我给上述所有预示出的原因是,如果有一种更好的方法,我没有找到或通过 - 也许是单词或其他东西的缩写症。
解决方案
使用preg_replace_callback()使用Delan的正则表达式,使在已确定的首字母的所有字母之间放置一个空间非常容易
$input = "At the USPGA championship in the US, the BBC reporter went MIA";
function cb_separateCapitals($matches) {
return implode(' ',str_split($matches[0]));
}
echo $input,'<br />';
$output = preg_replace_callback('/\b([A-Z]{2,})\b/','cb_separateCapitals',$input);
echo $output;
给予
在美国的USPGA锦标赛上,英国广播公司的记者去了MIA
在美国的USPGA锦标赛上,英国广播公司的记者去了MIA
其他提示
匹配首字母缩略词的模式:
/\b([A-Z]{2,})\b/
这与两个或两个或两个或两个或更多的首都相匹配。
您可以使用一个 lookahead断言
$input = "At the USPGA championship in the US, the BBC reporter went MIA";
echo preg_replace('~[A-Z](?=[A-Z])~', '$0 ', $input);
[A-Z](?=[A-Z])
说“每一次资本都有资本”
"[A-Z][A-Z]"
将匹配两个大写字母的任何实例。
不隶属于 StackOverflow