在 Dart 中将字符串拆分为单词、标点符号和空格的数组
Split a string into an array of words, punctuation and spaces in Dart
我正在尝试复制此页面上提到的方法:
例如:
var text = "I like grumpy cats. Do you?";
console.log(
text.match(/\w+|\s+|[^\s\w]+/g)
)
Returns:
[
"I",
" ",
"like",
" ",
"grumpy",
" ",
"cats",
".",
" ",
"Do",
" ",
"you",
"?"
]
但我使用的不是 Javascript,而是 Dart。我很难找到这在 Dart 中如何工作的示例,尤其是在格式化正则表达式时。
我试过了,但没有返回标点符号和空格:
dynamic textToWords(String text) {
// Get an array of words, spaces, and punctuation for a given string of text.
var re = RegExp(r"\w+|\s+|[^\s\w]+g");
final words = text != null
? re.allMatches(text != null ? text : '').map((m) => m.group(0)).toList()
: [];
return words;
}
感谢任何帮助。
删除 RegExp
末尾的 g
。
此外,text
永远不会为空,因为您将其声明为 String
,因此不需要这些空检查。
List<String> textToWords(String text) {
// Get an array of words, spaces, and punctuation for a given string of text.
var re = RegExp(r"\w+|\s+|[^\s\w]+");
final words = re.allMatches(text).map((m) => m.group(0) ?? '').toList();
return words;
}
我正在尝试复制此页面上提到的方法:
例如:
var text = "I like grumpy cats. Do you?";
console.log(
text.match(/\w+|\s+|[^\s\w]+/g)
)
Returns:
[
"I",
" ",
"like",
" ",
"grumpy",
" ",
"cats",
".",
" ",
"Do",
" ",
"you",
"?"
]
但我使用的不是 Javascript,而是 Dart。我很难找到这在 Dart 中如何工作的示例,尤其是在格式化正则表达式时。
我试过了,但没有返回标点符号和空格:
dynamic textToWords(String text) {
// Get an array of words, spaces, and punctuation for a given string of text.
var re = RegExp(r"\w+|\s+|[^\s\w]+g");
final words = text != null
? re.allMatches(text != null ? text : '').map((m) => m.group(0)).toList()
: [];
return words;
}
感谢任何帮助。
删除 RegExp
末尾的 g
。
此外,text
永远不会为空,因为您将其声明为 String
,因此不需要这些空检查。
List<String> textToWords(String text) {
// Get an array of words, spaces, and punctuation for a given string of text.
var re = RegExp(r"\w+|\s+|[^\s\w]+");
final words = re.allMatches(text).map((m) => m.group(0) ?? '').toList();
return words;
}