从String创建一个单词数组(字符串)

时间:2010-06-25 12:52:45

标签: actionscript-3 actionscript

如何从字符串创建字符串数组,例如

“你好世界”将返回[“你好”,“世界”]。这需要考虑标点符号等。

这可能是一个很好的RegEx解决方案,我只是无法找到它。

7 个答案:

答案 0 :(得分:2)

AS3的String.split怎么样?

var text:String = "hello world";
var split:Array = text.split(" "); // this will give you ["hello", "world"]
// then iterate and strip out any redundant punctuation like commas, colons and full stops

答案 1 :(得分:2)

认为我已经破解了它,这是完整的功能:

public static function getArrayFromString(str:String):Array {
        return str.split(/\W | ' | /gi);
    }

基本上,它使用'非单词'条件但不包括撇号,是全局的并且忽略大小写。感谢所有指出我正确方向的人。

答案 2 :(得分:1)

任何理由:

var myString:String = "hello world";

var reg:RegExp = /\W/i;

var stringAsArray:Array = myString.replace(reg, "").split(" ");

不行吗?

答案 3 :(得分:1)

也许这个也有效......

public static function getArrayFromString(str:String):Array {
    return str.split(/[^,\.\s\n\r\f¿\?¡!]+/gi);
    }

例如,应该使用英语以外的其他语言(例如,'\ w'不接受重音字符,例如...)

答案 4 :(得分:1)

这就是你需要的。经过测试和工作:

private function splitString(str:String):Array {
    var r:RegExp = /\W+/g;
    return str.split(r));
}

http://snipplr.com/view/63811/split-string-into-array/

答案 5 :(得分:0)

这似乎可以做你想要的:

package
{
import flash.display.Sprite

public class WordSplit extends Sprite
{
    public function WordSplit()
    {
        var inText:String = "This is a Hello World example.\nIt attempts,\
            to simulate! what splitting\" words ' using: puncuation\tand\
            invisible ; characters ^ & * yeah.";

        var regExp:RegExp = /\w+/g;
        var wordList:Array = inText.match(regExp);

        trace(wordList);
    }
}
}

如果没有,请提供样本输入和输出规范。

答案 6 :(得分:0)

我想你可能会想要这样的东西:

public static function getArrayFromString(str:String):Array {
    return str.split(/[\W']+/gi);
}

基本上,您可以将任何想要被视为分隔符的字符添加到方括号中。以下是这些部分的工作原理:

  1. 括号定义了一组字符。
  2. 括号中的内容是集合中的字符(\ W是“非单词”)
  3. 加号表示“前一项中的一项或多项” - 在这种情况下,是字符集。这样,如果你有连续几个字符的东西,你的阵列中就不会有空项。