我对正则表达式很新,我对这个有困难:
我想在找到这个patern时拆分一个String,但是这个"文本在这里"这一个"文本在这里" ^^(这应该被视为输出中的一个)。 请注意以下符号:^^ 这三种情况可以重复多次,也可以一个接一个地重复,并且总是用空格分隔。 示例:
< \ herewouldbeurl> "嘿,那里" " Asioc-project.org /. 34; ^^< \ anotherurl />
会产生: 1.< \ herewouldbeurl> 2。"嘿嘿那里" 3" Asioc-project.org /. 34 ^^< \ anotherurl />
我发现了这个:" \ s +(?=(?:(?< = [a-zA-Z])\"(?= [A-Za-z])| \ " [^ \"] \" | [^ \"]) $)"但不适用于第三种情况。
有什么想法吗?
答案 0 :(得分:0)
不要使用split()
。使用find()
循环。
String input = "<\\herewouldbeurl> \"HEY THERE\" \"Asioc-project.org/.\"^^<\\anotherurl/>";
Pattern p = Pattern.compile("\".*?\"(?:\\^\\^)?");
Matcher m = p.matcher(input);
int start = 0;
while (m.find()) {
String s = input.substring(start, m.start()).trim();
if (! s.isEmpty())
System.out.println(s);
System.out.println(m.group());
start = m.end();
}
String s = input.substring(start).trim();
if (! s.isEmpty())
System.out.println(s);
输出
<\herewouldbeurl>
"HEY THERE"
"Asioc-project.org/."^^
<\anotherurl/>