百度
360搜索
搜狗搜索

java正则表达式提取数字,java怎么从字符串中,提取第一组数字?详细介绍

本文目录一览: java正则表达式如何获取字符串中所有匹配内容

java正则表达式如何获取字符串中所有匹配内容 java正则表达式提取需要用到Matcher类。
正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Pattern pattern
= Pattern.pile("(\\d)[^\\d]*$")
Matcher matcher

= pattern.matcher(s)
if(matcher.find())
System.out.println
(matcher.group(1)); } }
如何获取字符串中匹配到正则表达式的子串开 mport java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X"; 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”Pattern pattern = Pattern.pile("(\\d)[^\\d]*$");Matcher matcher = pattern.matcher(s);if(matcher.find())System.out.println(matcher.group(1));}}
正则表达式获取字符串 string pattern=@"(.+?)" 取分组 Match.group[1]
JS如何用正则表达式 获取字符串内的匹配部份? 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实现的机制:通过replace的回调函数获取。
可以通过下面的代码获取匹配部分
var str = "abcdefgname='test'sddfhskshjsfsjdfps";
var reg = /name='((\w|-|\s)+)/ig;
str.replace(reg, function() { console.log(arguments.length); 5 console.log(arguments[1]);test });
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
正则表达式如何获取被匹配字符串的匹配组名 java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s = "A876X"; 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符” Pattern pattern = Pattern.pile("(\\d)[^\\d]*$"); Matcher matcher = pattern.matcher(s); if(matcher.find()) System.out.println(matcher.group(1)); } } 关于Matcher 中的几个方法说明: Mathcer.start() Matcher.end() Matcher.group() 当使用matches(),lookingAt(),find()执行匹配操作后,就可以利用以上三个方法得到更详细的信息. start()返回匹配到的子字符串在字符串中的索引位置. end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. group()返回匹配到的子字符串 示例代码如下,具体功能请参考注释 Pattern p=Pattern.pile(“\d+”); Matcher m=p.matcher(“aaa2223bb”); m.find();匹配2223 m.start();返回3 m.end();返回7,返回的是2223后的索引号 m.group();返回2223 Mathcer m2=p.matcher(“2223bb”); m2.lookingAt(); 匹配2223 m2.start(); 返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0 m2.end(); 返回4 m2.group(); 返回2223 Matcher m3=p.matcher(“2223”); 如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出错,因为不匹配返回false m3.matches(); 匹配整个字符串 m3.start(); 返回0 m3.end(); 返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串 m3.group(); 返回2223 另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组操作,Mathcer类还有一个groupCount()用于返回有多少组. 示例如下: Pattern p=Pattern.pile(“([a-z]+)(\d+)”); Matcher m=p.matcher(“aaa2223bb”); m.find(); 匹配aaa2223 m.groupCount(); 返回2,因为有2组 m.start(1); 返回0 返回第一组匹配到的子字符串在字符串中的索引号 m.start(2); 返回3 m.end(1); 返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置. m.end(2); 返回7 m.group(1); 返回aaa,返回第一组匹配到的子字符串 m.group(2); 返回2223,返回第二组匹配到的子字符串 注意: 只有当匹配操作成功,才可以使用start(),end(),group()三个方法,否则会抛出java.lang.IllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。
C# 正则表达式获取字符串? 针对你的问题:

是给数组命名 (?

subexpression) 其中name是有效的组名称,而subexpression是任何有效的正则表达式模式。 name不得包含任何标点符号字符,并且不能以数字开头。 这个方式相当于下面这个表达式 "(?
<!--0-9a-zA-Z)([0-9]|[a-z]|[A-Z]){1,}" java正则表达式如何获取分组匹配内容 String str = "我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa."; \d 表示0-9 任意一个数字 后面有+号 说明这个0-9单个数位出现一到多次 比如21312314 String reg = "\\d+"; Pattern是一个正则表达式经编译后的表现模式。 Pattern pattern = Pattern.pile (reg); Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 Matcher matcher = pattern.matcher (str); 只有执行了find()方法 后,状态机matcher才是真正开始进行匹配工作的! while (matcher.find ()) { matcher.group()返回匹配到的子字符串 System.out.println (matcher.group ()); } }

Java正则表达式匹配是否存在字符串。 正则表达式为:.*a.*b.*c.* package .test; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { /** * @param args */ public static void main(String[] args) { TODO Auto-generated method stub String source = "abcdefg\n" + "uaibec\n" + "wabbcd\n" + "adb\n" + "acb"; String regex = "(.*a.*b.*c.*)"; Pattern pattern = Pattern.pile(regex,Pattern.MULTILINE); Matcher matcher = pattern.matcher(source); while(matcher.find()){ System.out.println(matcher.group()); } } } 你可以直接复制出来,运行一下就可以了

阅读更多 >>>  java语言不支持Linux平台吗

java如何使用正则表达式提取以下字符串的数字

观察后会发现只有3中数据类型,整数,百分数,日期(如果还要保留原有的数字格式的话)
Pattern regex1 = Pattern.compile("^d*\\.?\\d*%?$");//匹配整数 小数 分数
Pattern regex2 = Pattern.compile(“^d{1,2}-d{1,2}\sd{1,2}:d{1,2}$”);//匹配日期
ps:我没测过,大致思路是这样
String s = "274750.4%1384136311-10 23:24";Pattern p = Pattern.compile("(?:)(.*?)(?:)");Matcher m = p.matcher(s);while(m.find()) { System.out.println(m.group(1));}

JAVA 正则表达式的提取数据是什么?

Pattern p = Pattern.compile("(name:)([a-zA-Z]*)(,age:)([0-9]*)");
Matcher m = p.matcher("name:vunv,age:20");
while (m.find()) {
System.out.println(m.group(2));
System.out.println(m.group(4));
}
望满意,且给分哦~

Java正则表达式截取固定长度的数字。比如: 检查情况通报[2013] 1号 提取2013

\\b[0-9]{4}\\b
代码如下:
import java.util.regex.Matcher;import java.util.regex.Pattern;public class App30 { public static void main(String[] args) { String text = "检查情况通报[2013] 1号"; Pattern pattern = Pattern.compile("\\[(\\d+?)\\]"); Matcher matcher = pattern.matcher(text); if (matcher.find()) { System.out.println(matcher.group(1)); } }}运行结果:2013

java如何从任意字符串中截取数字

用java中String类里的split();方法 这一方法支持正则表达式
用法
String str=“1234567.1234”;
String [] strs = str.split("[.]");
就可以得到数组 strs[0] =1234567; strs[1] =1234
-1表示没有
使用正则表达式可以很方便地从文本中截取数字,下面是详细代码:
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String phoneString = "哈哈,13800";
// 提取数字
// 1
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(phoneString);
String all = matcher.replaceAll("");
System.out.println("phone:" + all);
// 2
Pattern.compile("[^0-9]").matcher(phoneString).replaceAll("");
}
}

java中,如何将字符串里的数字进行运算!

能举个例子吗?
比如说一个字符串“2+3”运算后得到一个(int )5?
截取字符中的数字,然后强制类型转换
  字符串里包含数字,首先要使用正则表达式将其中的数字提取出来,正则写法为: "^[0-9]*[1-9][0-9]*$"; 然后用Integer函数将其转换为数字类型,就可以进行您所需要的运算了。
  Integer是其包装类,注意是一个类,用法例子:int num2=Integer.parseInt("12");
  Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

JAVA 正则表达式 提取数据

类似这种,就不要用什么正则表达式了。
直接String[] ss = str.split(",");
Map m= new HashMap();
for(String s:ss){
String [] ts = s.split(":");
m.put(ts[0],ts[1]);
}
然后你想用name属性,就直接m.get("name");就取到了
Pattern p = Pattern.compile("(name:)([a-zA-Z]*)(,age:)([0-9]*)");
Matcher m = p.matcher("name:vunv,age:20");
while (m.find()) {
System.out.println(m.group(2));
System.out.println(m.group(4));
}
望满意,且给分哦~
这么简单的问题,不用正则表达式都可以的,你可以直接拆分字符串
String str = "name:sddd,age:20";
String name = str.split(",")[0].split(":")[1];
String age = str.split(",")[1].split(":")[1];
System.out.println(name+":"+age);

java如何通过正则表达式完成如下任务: 将字母或 数字开头的字符串截取数字(包含数字)之前的。

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 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();
}
}

阅读更多 >>>  java代码生成器

java怎么从字符串中,提取第一组数字?

Java语言正则表达式:(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?
下面是取出表后第一组数字的Java程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
public static void main(String[] args) {
String s="表15dfsdaf33\r\n表abcd15def\r\n表 15 哈哈abc22\r\n表*#A$!@&@!15$#@432$+_";
String regex="(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1)+m.group(2));
}
}
}
Java语言正则表达式:(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?
下面是取出表后第一组数字的Java程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
public static void main(String[] args) {
String s="表15dfsdaf33\r\n表abcd15def\r\n表 15 哈哈abc22\r\n表*#A$!@&@!15$#@432$+_";
String regex="(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1)+m.group(2));
}
}
}
运行结果:
表15
表15
表15
表15
// 要求的字符串
String str = "¥@¥fs45..<>fsd889345sd";
// 转换成字符数组
char[] strs = str.toCharArray();
StringBuffer sb = new StringBuffer();
for(Character c : strs){
// 正则表达式(\d表示数字)
if(c.toString().matches("^\\d$")){
sb.append(c);
}
}
System.out.println(sb.toString());
// 转换成数字
int num = Integer.parseInt(sb.toString());

java 怎么利用正则表达式从给定的字符串中取出匹配规则字符串

java正则提取需要用到Matcher类,下面给出案例示例供参考
需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String s = "A876X";
// 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
// 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Pattern pattern = Pattern.compile("(\\d)[^\\d]*$");
Matcher matcher = pattern.matcher(s);
if(matcher.find())
System.out.println(matcher.group(1));
}
}
关于Matcher 中的几个方法说明:
Mathcer.start()
Matcher.end()
Matcher.group()
当使用matches(),lookingAt(),find()执行匹配操作后,就可以利用以上三个方法得到更详细的信息.
start()返回匹配到的子字符串在字符串中的索引位置.
end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置.
group()返回匹配到的子字符串
示例代码如下,具体功能请参考注释
Pattern p=Pattern.compile(“\d+”);
Matcher m=p.matcher(“aaa2223bb”);
m.find();//匹配2223
m.start();//返回3
m.end();//返回7,返回的是2223后的索引号
m.group();//返回2223
Mathcer m2=p.matcher(“2223bb”);
m2.lookingAt(); //匹配2223
m2.start(); //返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0
m2.end(); //返回4
m2.group(); //返回2223
Matcher m3=p.matcher(“2223”); //如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出错,因为不匹配返回false
m3.matches(); //匹配整个字符串
m3.start(); //返回0
m3.end(); //返回3,原因相信大家也清楚了,因为matches()需要匹配所有字符串
m3.group(); //返回2223
另外,Mathcer类中start(),end(),group()均有一个重载方法它们是start(int i),end(int i),group(int i)专用于分组操作,Mathcer类还有一个groupCount()用于返回有多少组.
示例如下:
Pattern p=Pattern.compile(“([a-z]+)(\d+)”);
Matcher m=p.matcher(“aaa2223bb”);
m.find(); //匹配aaa2223
m.groupCount(); //返回2,因为有2组
m.start(1); //返回0 返回第一组匹配到的子字符串在字符串中的索引号
m.start(2); //返回3
m.end(1); //返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置.
m.end(2); //返回7
m.group(1); //返回aaa,返回第一组匹配到的子字符串
m.group(2); //返回2223,返回第二组匹配到的子字符串
注意: 只有当匹配操作成功,才可以使用start(),end(),group()三个方法,否则会抛出java.lang.IllegalStateException,也就是当matches(),lookingAt(),find()其中任意一个方法返回true时,才可以使用。

网站数据信息

"java正则表达式提取数字,java怎么从字符串中,提取第一组数字?"浏览人数已经达到20次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:java正则表达式提取数字,java怎么从字符串中,提取第一组数字?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!