用java去截取一段字符串要求包括汉字前面的所有内容不包括汉字如果没有汉字那么直接截取这段内容
可以通过使用正则表达式来实现这个需求。以下是一个示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "abc汉字efg";
String result = extractPrefix(str);
System.out.println(result);
}
public static String extractPrefix(String str) {
String regex = "(.*?)([\u4e00-\u9fa5]+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
return matcher.group(1);
} else {
return str;
}
}
}
运行上述代码,输出结果为:abc。代码中使用正则表达式(.*?)([\u4e00-\u9fa5]+)来匹配汉字前面的内容。其中.*?表示匹配任意字符零次或多次,非贪婪模式;[\u4e00-\u9fa5]+表示匹配一个或多个汉字。matcher.group(1)返回第一个括号中匹配到的内容,即汉字前面的内容。如果没有找到汉字,直接返回原字符串
原文地址: http://www.cveoy.top/t/topic/iGjt 著作权归作者所有。请勿转载和采集!