如何从字符串创建字符串数组,例如
“你好世界”将返回[“你好”,“世界”]。这需要考虑标点符号等。
这可能是一个很好的RegEx解决方案,我只是无法找到它。
答案 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));
}
答案 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);
}
基本上,您可以将任何想要被视为分隔符的字符添加到方括号中。以下是这些部分的工作原理: