![](/img/trans.png)
[英]How to extract numbers after text with a number with a regular expression?
[英]Regular expression to extract text between and after “||” symbol
我没有Java正则表达式的经验,但我认为我们可以使用regexp解决此问题,并且比我的示例更容易。 我有一个带双||
的文本 符号。 文字看起来像:
1) aaa||bbb||ccc
,
2) aaa||||ccc
,
3) ||bbb||ccc
,
4) || ||cccc
|| ||cccc
等
我想先||
之后提取文本 - BBB,安德烈之后第二||
-ccc 。 我做了:
Pattern p = Pattern.compile("||",Pattern,DOTALL);
String types[] = p.split(stringToParse);
但这在字符串没有3个部分的情况下不起作用。
第二个想法是:
Pattern p = Pattern.compile("||",Pattern,DOTALL);
Matcher m= p.matcher(strToParse);
while (m.find()) {
System.out.println(m.group() + " " + m.start() + " " + m.end());
}
然后我知道||
发生并且可能做子串。 是否存在解决此问题的简便方法?
如上所述,人们说不要将其用于HTML解析器。
Pattern p = Pattern.compile("(<br>)\\w*(<br>)");
Matcher m= p.matcher(c);
while (m.find()) {
System.out.println(m.group().replace("<br>", ""));// replace <br>.
}
这个:
String[] data = {
"aaa||bbb||ccc",
"aaa||||ccc",
"||bbb||ccc",
"|| ||cccc"
};
for (String string : data) {
String[] split = string.split(Pattern.quote("||"));
System.out.println("0:"+split[0] + ", 1:" + split[1] + " 2:" + split[2]);
}
给出:
0:aaa, 1:bbb 2:ccc
0:aaa, 1: 2:ccc
0:, 1:bbb 2:ccc
0:, 1: 2:cccc
请注意,使用Pattern.quote()
将正则表达式转义为|
是特殊的正则表达式字符 。
您误解了文档以进行拆分。 这将在stringToParse之间分割字符串:
String types[] = between.split(stringToParse);
您可能希望在以下标记之间分割字符串stringToParse:
String types[] = stringToParse.split(between);
例如:
String s = "a:b:c";
String letters[] = s.split(":");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.