我有一个包含以下内容的txt文件:
one two, three, four five, six seven, eight, nine, ten
你能帮我写一个或两个单词(用空格)的正则表达式吗?
需要:
stroke[0] = "one two",
stroke[1] = "three",
stroke[2] = "four five",
stroke[3] = "six seven",
stroke[4] = "eight",
...
我的代码:
Scanner sc = new Scanner(getResources().openRawResource(R.raw.skills));
while (sc.hasNext()) {
stroke[n] += sc.next("\w|\w\s\w");
n++;
}
您可能只应该使用.split(", ")
,但如果必须使用regex,则可以使用以下内容:
正则表达式:
([^,]+)
工作正则表达式示例:
http://regex101.com/r/cR0sV4
Java:
**注意,我对java语法没有经验,但它会是这样的。。(如果这不是完全正确的java语法,请原谅我。)
String str = "one two, three, four five, six seven, eight, nine, ten";
Pattern pattern = Pattern.compile("([^,]+)");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(trim(matcher.group()));
}
注意trim()
以删除前面的任何空白。
类似的。。再说一遍,我不知道java,但是regex是有效的。参见示例。:)
String str = {one two, three, four five, six seven, eight, nine, ten}
String[] string = str.split(",\s+");
如果约定是具有此格式的文件,那么如果在扫描仪上使用useDelimiter("\s*,\s*)
(如),则可以获得相同的结果
Scanner sc = new Scanner(getResources().openRawResource(R.raw.skills)).useDelimiter("\s*,\s*");