
java如何通过正则表达式完成如下任务: 将字母或 数字开头的字符串截取数字(包含数字)之前的。
如:A123B--》A123BC123--》BC123AS123BV--》AS123123V--》123123--》123AS12VV33BV--》AS12VV33...
如:
A123B --》A123
BC123 --》BC123
AS123BV --》AS123
123V --》123
123 --》123
AS12VV33BV --》AS12VV33 展开
A123B --》A123
BC123 --》BC123
AS123BV --》AS123
123V --》123
123 --》123
AS12VV33BV --》AS12VV33 展开
5个回答
展开全部
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ttts {
public static void main(String... strs) {
String str = "VVV4BC3233BBB";
System.out.println(getStrings(new StringBuilder(),str));
}
public static String getStrings(StringBuilder sb,String str) {
if (str == null)return "";
if (str.equals(""))return sb.toString();
Pattern p = Pattern.compile("[a-zA-Z]*[0-9]*");
Matcher m = p.matcher(str);
if (m.find()) {
String group = m.group();
sb.append(group);
String subStr = str.substring(group.length());
Pattern pattern = Pattern.compile(".*\\d+.*");
if (pattern.matcher(subStr).matches()) {
getStrings(sb,str.substring(group.length()));
}
}
return sb.toString();
}
}
import java.util.regex.Pattern;
public class ttts {
public static void main(String... strs) {
String str = "VVV4BC3233BBB";
System.out.println(getStrings(new StringBuilder(),str));
}
public static String getStrings(StringBuilder sb,String str) {
if (str == null)return "";
if (str.equals(""))return sb.toString();
Pattern p = Pattern.compile("[a-zA-Z]*[0-9]*");
Matcher m = p.matcher(str);
if (m.find()) {
String group = m.group();
sb.append(group);
String subStr = str.substring(group.length());
Pattern pattern = Pattern.compile(".*\\d+.*");
if (pattern.matcher(subStr).matches()) {
getStrings(sb,str.substring(group.length()));
}
}
return sb.toString();
}
}
展开全部
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static boolean check(String str,String regex){
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(str);
boolean result =m.find();
return result;
}
public static String getSubString(String s){
int m = -1;
int length = s.length();
if(s!=null&&!"".equals(s.trim())){
for(int i=length-1;i>0;i--){
char c = s.charAt(i);
boolean b = check(c+"", "\\d");
if(b){
m = i;
break;
}
}
}
String result = "";
if(m!=-1){
result = s.substring(0,m+1);
}
return result;
}
public static void main(String args[]) throws IOException {
String s = "AS12VV33BV";
System.out.println(getSubString(s));
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static boolean check(String str,String regex){
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(str);
boolean result =m.find();
return result;
}
public static String getSubString(String s){
int m = -1;
int length = s.length();
if(s!=null&&!"".equals(s.trim())){
for(int i=length-1;i>0;i--){
char c = s.charAt(i);
boolean b = check(c+"", "\\d");
if(b){
m = i;
break;
}
}
}
String result = "";
if(m!=-1){
result = s.substring(0,m+1);
}
return result;
}
public static void main(String args[]) throws IOException {
String s = "AS12VV33BV";
System.out.println(getSubString(s));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好复杂的说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
^/0-9/g
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是想用一个正则表达式找出来?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |