Java正则表达式在空格上拆分,前后不带单引号或双引号
我没法让它工作 我有一个字符串,我想在空格上拆分它。但是,我不想在字符串内部拆分。即双引号或单引号内的文本 范例 正在拆分以下字符串:Java正则表达式在空格上拆分,前后不带单引号或双引号,java,regex,split,quotes,Java,Regex,Split,Quotes,我没法让它工作 我有一个字符串,我想在空格上拆分它。但是,我不想在字符串内部拆分。即双引号或单引号内的文本 范例 正在拆分以下字符串: private String words = " Hello, today is nice " ; …应产生以下代币: private String words = " Hello, today is nice " ; 我可以用什么样的正则表达式 正则表达式([^“]*)|(“[^“]*”)应该匹配所有令牌。利用我对Java和Java的有限知识,
private String words = " Hello, today is nice " ;
…应产生以下代币:
private
String
words
=
" Hello, today is nice "
;
我可以用什么样的正则表达式 正则表达式([^“]*)|(“[^“]*”)
应该匹配所有令牌。利用我对Java和Java的有限知识,您应该能够做到以下几点:
// Please excuse any syntax errors, I'm used to C#
Pattern pattern = Pattern.compile("([^ \"]*)|(\"[^\"]*\")");
Matcher matcher = pattern.matcher(theString);
while (matcher.find())
{
// do something with matcher.group();
}
你试过这个吗
((['"]).*?\2|\S+)
它的作用如下:
( <= Group everything
(['"]) <= Find a simple or double quote
.*? <= Capture everything after the quote (ungreedy)
\2 <= Find the simple or double quote (same as we had before)
| <= Or
\S+ <= Non space characters (one at least)
)
(这不应该工作吗?[^\\s\']+\'[^\']*\'[^']*\'[^']*'”的副本正在查看它,但认为它是不同的。现在我意识到这是同一个问题。抱歉!尝试了这个..但出于某种原因它根本没有提取任何标记..可能不适合拆分方法?String[]tokens=myString.get(x).split((['\')).**?\\2 |\\S+);谢谢,伙计。这适合我的应用,而且效果很好。