回答
你不需要正则表达式的。
只需使用字符串:一步
Pattern pattern = Pattern.compile(".{4}(.{3}).*");
Matcher matcher = pattern.matcher("testXXXtest");
matcher.matches();
String whatYouNeed = matcher.group(1);
是什么意思,步:
yourString.substring(4,7)
既然你确实需要使用正则表达式,你可以做这样的
.{4}
- 任意四个字符
(
- 开始拍摄组,即你需要什么
.{3}
- 任何三个字符
)
- 结束捕获组,你说对了,现在
.*
后跟0或多个任意字符。
matcher.group(1)
- 获得第一个(仅)捕获组。
您应该能够使用substring()方法来实现:
string example = "testXXXtest";
string result = example.substring(4,7);
谢谢你。但不幸的是,这需要添加到使用正则表达式的现有框架。 – javaagn
@javaagn这样的限制应该在问题中声明。 – gyorgyabraham
这可能帮助:Groups and capturing in java.util.regex.Pattern。
下面是一个例子:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Example {
public static void main(String[] args) {
String text = "This is a testWithSomeDataInBetweentest.";
Pattern p = Pattern.compile("test([A-Za-z0-9]*)test");
Matcher m = p.matcher(text);
if (m.find()) {
System.out.println("Matched: " + m.group(1));
} else {
System.out.println("No match.");
}
}
}
此打印:
Matched: WithSomeDataInBetween
如果你不想整个图案,而匹配输入字符串(而不是寻求一个子串会匹配),您可以使用matches()
而不是find()
。您可以使用find()
继续搜索更多匹配的子字符串。
此外,您的问题没有指定两个“测试”字符串之间的可接受字符和字符串的长度。我认为任何长度都可以,包括零,并且我们寻找由小写字母和大写字母以及数字组成的子字符串。
谢谢你。我希望有任何例子吗? – javaagn
你可以使用子字符串,你不需要一个正则表达式。
yourString.substring(4,7);
我相信你也可以使用正则表达式,但为什么如果你不需要它。当然,你应该保护这个代码免受太短和空字符串的影响。
正在寻找regEX模式。我知道在java中很容易,就像你以及之前提到的其他人一样。 – javaagn
使用String.replaceAll()类方法
如果您并不需要优化性能,则可以尝试String.replaceAll()类方法更清洁的选择:
String sDataLine = "testXXXtest";
String sWhatYouNeed = sDataLine.replaceAll(".{4}(.{3}).*", "$1");
参考
- 1. 正则表达式:简单的Java正则表达式问题
- 2. 正则表达式到Java正则表达式 - 替换和Lambdas
- 3. 正则表达式的正则表达式的Java字符串
- 4. 的Javascript正则表达式为Java正则表达式
- 5. JavaScript正则表达式到Java正则表达式
- 6. Java的正则表达式
- 7. Java正则表达式5
- 8. Java正则表达式
- 9. Java-正则表达式滑
- 10. Java正则表达式
- 11. Java正则表达式
- 12. 正则表达式在Java
- 13. Java正则表达式
- 14. 正则表达式的Java
- 15. 正则表达式 - Java
- 16. Java正则表达式
- 17. java:正则表达式
- 18. 正则表达式 - Java的
- 19. java的正则表达式
- 20. 与Java正则表达式
- 21. 正则表达式java
- 22. Java正则表达式组
- 23. java正则表达式行
- 24. Java的正则表达式
- 25. Java正则表达式CodeTitle
- 26. java正则表达式
- 27. Java正则表达式
- 28. 正则表达式java
- 29. Java正则表达式
- 30. Java正则表达式
为什么正则表达式?你尝试子字符串 – HRgiger