让我们假设我有一个字符串:
“Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad 微小的veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in 代表性的velitate velit esse 测试标签= a / b / c / d / e cillum dolore eu fugiat nulla pariatur。 Excepteur sint occaecat cupidatat non proident,sunt in culpa qui 官方deserunt mollit anim id est laborum。“
我想要子串a/b/c/d/e
。 (a / b / c / d / e是我需要解析给定字符串的路径。)
我如何获得这样的子字符串?我尝试使用str.subString()
并使用正则表达式但无法获得它。
答案 0 :(得分:0)
试试这个:
System.out.println(str.replaceAll(".*Test Tag =",""));
嗯,这假定anything
你的意思是什么; - )
答案 1 :(得分:0)
这允许等号两侧的可选单个空格,并捕获所有字符,但不包括下一个空格。
import java.util.regex.Pattern;
import java.util.regex.Matcher;
/**
<P>{@code java BtwTestTagEqualsAndSpace}</P>
**/
public class BtwTestTagEqualsAndSpace{
public static final void main(String[] ignored) {
String sToSearch = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse Test Tag = a/b/c/d/e cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
String sRplcWith = "$1";
String sRegex = ".+Test Tag ?= ?([^ ]+).*$";
Matcher m = Pattern.compile(sRegex).matcher(sToSearch);
StringBuffer sb = new StringBuffer();
if(m.matches()) {
System.out.println(m.group(1));
} else {
System.out.println("No match");
}
}
}
输出:
[C:\java_code\]java BtwTestTagEqualsAndSpace
a/b/c/d/e
答案 2 :(得分:0)
您可以使用以下正则表达式
.*Test Tag\s?=\s?([^\s]+).*
比你应该获取组1。
答案 3 :(得分:0)
str.subString(str.indexOf("=") + 2, str.indexOf("=") + 9)