【发布时间】:2011-10-26 16:42:34
【问题描述】:
首先:我是编程新手。如果您选择帮助我,请详细说明。
我要做的是首先从硬编码推文中删除所有特殊字符。之后我想做的是使用 MML(音乐宏语言)将每个字母转换为特定的音调。
当我尝试替换后通过声音库 sion 播放推文时,我只能听到五个音调。我究竟做错了什么?我猜这很简单,但我不知道什么。
我正在用 FDT 编写 Actionscript 3,这对我来说都是全新的,就像正则表达式一样。
public function translateTweet() {
var myPattern:RegExp = /[~%&\\;:"',<>?#]+/g;
var tweet : String = "@cupofjoakim AN EXAMPLE string! :D #hi11expo";
tweet = tweet.replace(myPattern, " ");
// maybe i could take away a lot of the code for removing the
// special characters? dont dare to do it now, but still.
myPattern = /[~%&\\;:"',<>?#]+/g;
trace(tweet.replace(/[~%&\\;:"',<>?#]+/g, ""));
// Now that Special characters should be gone, let's translate the rest!
trace(tweet.replace(/\s/g, "r4"));
trace(tweet.replace(/a/g, "o4c"));
trace(tweet.replace(/b/g, "o4d"));
trace(tweet.replace(/c/g, "o4e"));
trace(tweet.replace(/d/g, "o4f"));
trace(tweet.replace(/e/g, "o4g"));
trace(tweet.replace(/f/g, "o4a"));
trace(tweet.replace(/g/g, "o4b"));
trace(tweet.replace(/h/g, "o5c"));
trace(tweet.replace(/i/g, "o5d"));
trace(tweet.replace(/j/g, "o5e"));
trace(tweet.replace(/k/g, "o5f"));
trace(tweet.replace(/l/g, "o5g"));
trace(tweet.replace(/m/g, "o5a"));
trace(tweet.replace(/n/g, "o5b"));
trace(tweet.replace(/o/g, "o4c"));
trace(tweet.replace(/p/g, "o4d"));
trace(tweet.replace(/q/g, "o4e"));
trace(tweet.replace(/r/g, "o4f"));
trace(tweet.replace(/s/g, "o4g"));
trace(tweet.replace(/t/g, "o4a"));
trace(tweet.replace(/u/g, "o4b"));
trace(tweet.replace(/v/g, "o5c"));
trace(tweet.replace(/w/g, "o5d"));
trace(tweet.replace(/x/g, "o5e"));
trace(tweet.replace(/y/g, "o5f"));
trace(tweet.replace(/z/g, "o5g"));
trace(tweet.replace(/A/g, "CAPS_A"));
trace(tweet.replace(/B/g, "CAPS_B"));
trace(tweet.replace(/C/g, "CAPS_C"));
trace(tweet.replace(/D/g, "CAPS_D"));
trace(tweet.replace(/E/g, "CAPS_E"));
trace(tweet.replace(/F/g, "CAPS_F"));
trace(tweet.replace(/G/g, "CAPS_G"));
trace(tweet.replace(/H/g, "CAPS_H"));
trace(tweet.replace(/I/g, "CAPS_I"));
trace(tweet.replace(/J/g, "CAPS_J"));
trace(tweet.replace(/K/g, "CAPS_K"));
trace(tweet.replace(/L/g, "CAPS_L"));
trace(tweet.replace(/M/g, "CAPS_M"));
trace(tweet.replace(/N/g, "CAPS_N"));
trace(tweet.replace(/O/g, "CAPS_O"));
trace(tweet.replace(/P/g, "CAPS_P"));
trace(tweet.replace(/Q/g, "CAPS_Q"));
trace(tweet.replace(/R/g, "CAPS_R"));
trace(tweet.replace(/S/g, "CAPS_S"));
trace(tweet.replace(/T/g, "CAPS_T"));
trace(tweet.replace(/U/g, "CAPS_U"));
trace(tweet.replace(/V/g, "CAPS_V"));
trace(tweet.replace(/W/g, "CAPS_W"));
trace(tweet.replace(/X/g, "CAPS_X"));
trace(tweet.replace(/Y/g, "CAPS_Y"));
trace(tweet.replace(/Z/g, "CAPS_Z"));
trace(tweet.replace(/å/g, "o4c"));
trace(tweet.replace(/Å/g, "o4c2"));
trace(tweet.replace(/ä/g, "o4c"));
trace(tweet.replace(/Ä/g, "o4c2"));
trace(tweet.replace(/á/g, "o4c"));
trace(tweet.replace(/Á/g, "o4c2"));
trace(tweet.replace(/à/g, "o4c"));
trace(tweet.replace(/À/g, "o4c2"));
trace(tweet.replace(/é/g, "o4g"));
trace(tweet.replace(/É/g, "o4g2"));
trace(tweet.replace(/è/g, "o4g"));
trace(tweet.replace(/È/g, "o4g2"));
trace(tweet.replace(/ë/g, "o4g"));
trace(tweet.replace(/Ë/g, "o4g2"));
trace(tweet.replace(/ú/g, "o4b"));
trace(tweet.replace(/Ú/g, "o4b2"));
trace(tweet.replace(/ù/g, "o4b"));
trace(tweet.replace(/Ù/g, "o4b2"));
trace(tweet.replace(/ü/g, "o4b"));
trace(tweet.replace(/Ü/g, "o4b2"));
trace(tweet.replace(/í/g, "o5d"));
trace(tweet.replace(/Í/g, "o5d2"));
trace(tweet.replace(/ì/g, "o5d"));
trace(tweet.replace(/Ì/g, "o5d2"));
trace(tweet.replace(/ï/g, "o5d"));
trace(tweet.replace(/Ï/g, "o5d2"));
trace(tweet.replace(/ó/g, "o4c"));
trace(tweet.replace(/Ó/g, "o4c2"));
trace(tweet.replace(/ò/g, "o4c"));
trace(tweet.replace(/Ò/g, "o4c2"));
trace(tweet.replace(/ö/g, "o4c"));
trace(tweet.replace(/Ö/g, "o4c2"));
}
【问题讨论】:
-
我对actionscript一无所知,但这对我来说似乎不是正则表达式问题(也许你调用正则表达式的方式是错误的)。但总的来说,您需要调试代码。意味着您正在使用带有集成调试器的 IDE,您可以在其中查看替换前后字符串的外观,或者您只需打印替换前后的值。这样你就可以找到出错的地方。
标签: regex actionscript-3 twitter fdt