regex - Actionscript 3 - 字符串用 MML 替换字符?

标签 regex actionscript-3 twitter fdt

首先:我是编程新手。如果您选择帮助我,请详细说明。

我想做的是首先从硬编码推文中删除所有特殊字符。我接下来要做的就是使用 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"));
}

最佳答案

我不确定我是否完全理解您要做什么,但我确实知道 String.replace() 将返回一个包含替换内容的新字符串,并且不会触及您发送的字符串,因此您需要去:

tweet = tweet.replace(/\s/g, "r4");

关于regex - Actionscript 3 - 字符串用 MML 替换字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899945/

相关文章:

javascript - 在字符串中查找整数

javascript - AS3 -ExternalInterface.addCallback,访问未定义的属性

python - 使用需要特定字段的 Tweepy 提取推文

Twitter API 和转发

java - Twitter4j 用户 protected 数据的问题

PHP 正则表达式 : what is "class at offset 0"?

R grepl 检查字符串是否包含我们所有的单词

分配给命名组的 Python 正则表达式

android - Adobe AIR CameraRoll 无法在 Android 6.0 上选择照片

flash - 在 AS3 中最简单的 onReleaseOutside 实现?