使用Java正则表达式提取字符串中的数字一例
直接上代码:
- String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71
- String s = monster.getMonsterName();
- Pattern p2 = Pattern.compile(reg);
- Matcher m2 = p2.matcher(s);
- int historyHighestLevel = 1;
- if(m2.find()){
- historyHighestLevel = Integer.parseInt(m2.group(1));
- System.out.println(m2.group(1)); // 组提取字符串
- }
相似的我也可以提起字符串中间的一个或多个数字:
- reg = "\\D+(\\d+)\\D+"; // 提起字符串中间的数字
- reg = "\\D+(\\d+)\\D+(\\d+)\\D*"; // 提起字符串中间的多个数字
再看一例子:
- String sqlServerDateTime = "CAST(0x993902CE AS DATETIME)";
- String reg = "CAST\\((0x[0-9-a-f-A-F]+) AS DATETIME\\)"; // ( 为特殊字符,需要用 \\ 转义
- Pattern p = Pattern.compile(reg);
- Matcher m = p.matcher(sqlServerDateTime);
- if(m.find()){
- rawData = m.group(1);
- System.out.println(rawData); // 组提取字符串 0x993902CE
- }
2. 匹配所有图片格式:
- String reg = ".*\\.(?i)(jpg|jpeg|gif|bmp|png)";
if(filePath.matches(reg)){- }
注意 (jpg|jpeg|gif|bmp|png) 和 [a|b] 的区别,一个是多个字符中任意一个,一个是多个字母中任意一个,不要搞混了。
3. java常用正则表达式(网上的):
- 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
- 只能输入数字:"^[0-9]*$"只能输入n位的数字:"^\d{n}$"只能输入至少n位的数字:"^\d{n,}$"只能输入m~n位的数字:。"^\d{m,n}$"
- 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"
- 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"
- 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"
- 只能输入非零的正整数:"^\+?[1-9][0-9]*$"
- 只能输入非零的负整数:"^\-[1-9][]0-9"*$
- 只能输入长度为3的字符:"^.{3}$"
- 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"
- 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"
- 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线
- 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"
- 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
- 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
- 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"
- 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"
- 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"
- 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"
- 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"
- 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
- 匹配双字节字符(包括汉字在内):[^\x00-\xff]
- 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
- String.prototype.len=function(){returnthis.replace(/[^\x00-\xff]/g,"aa").length;}
- 匹配空行的正则表达式:\n[\s| ]*\r
- 匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
- 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
使用Java正则表达式提取字符串中的数字一例的更多相关文章
- C++ 提取字符串中的数字
C++ 提取字符串中的数字 #include <iostream> using namespace std; int main() { ] = "1ab2cd3ef45g&quo ...
- java正则表达式提取地址中的ip和端口号
由于我需要用到java正则表达式提取地址中的ip和端口号,所以我就写了一个demo,测试一下,下面是demo public class Test0810_1 { public static void ...
- 使用awk提取字符串中的数字或字母
1.提取字符串中的数字 $ echo 'dsFUs34tg*fs5a%8ar%$#@' |awk -F "" ' { for(i=1;i<=NF;i++) { if ($i ...
- python(15)提取字符串中的数字
python 提取一段字符串中去数字 ss = “123ab45” 方法一:filter filter(str.isdigit, ss) 别处copy的filter的用法: # one>> ...
- php提取字符串中的数字
最近工作中写代码的时候需要在一串字符串中将所有的数字提取出来这么一个小功能,研究了一下发现方法还挺多,值得记录一下,于是对如何使用PHP将字符串中的数字提取出来的功能做了一个小总结,总结三种方法如下: ...
- java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字
题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.re ...
- Excel中如何提取字符串中的数字
取字符串中的数字,假如数据在A列,提取公式为 =LOOKUP(9^9,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&5^19)),ROW($1:$99) ...
- Java:将字符串中的数字转换成整型
在C语言中,将字符串中的数字转换为整型的方法是是利用atoi这个函数.在Java中,我们可以利用parseInt方法来实现,具体代码如下: public class HelloWorld { publ ...
- C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
/// 去掉字符串中的数字 public static string RemoveNumber(string key) { ...
随机推荐
- Java魔法堂:String.format详解
目录 一.前言 二.重载方法 三.占位符 四.对字符.字符串进行格式化 五.对整数进行格式化 六.对浮点数进行格式化 七.对日期时间进行格式化 ...
- web面试题大全
$HTML, HTTP,web综合问题 常见排序算法的时间复杂度,空间复杂度 前端需要注意哪些SEO web开发中会话跟踪的方法有哪些 <img>的title和alt有什么区别 docty ...
- 面向对象的JavaScript(一)命名空间
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会用到大量的JavaScrpt,有时JavaScript的 ...
- SqL数据库发布订阅非聚集索引没有被复制到订阅服务器的解决方案
Non-Clustered Indexes not copying in Transactional Replication : SQL Server 2008 方法1: You have trans ...
- Azure开发者任务之三:理解Azure应用程序(上)
作为Windows Azure的托管服务被设计和开发的应用程序由这两部分组成: 1,托管代码 2,XML配置文件 托管代码对应不同的角色 XML文件对应不同的配置设置 我们可以看一下下面这张图,它详细 ...
- sphinx使用小记之使用小结
sphinx使用小记之使用小结 摘自:http://www.68idc.cn/help/jiabenmake/qita/20150124187789.html 在使用sphinx的过程中有出现一些问题 ...
- 记一次纠结Macbook 重装OS X的系统
本文所有图片都是网上截图,不是实操环境.本文不具有教学意义. 起因:Macbook 白苹果了,无限菊花. 我的Macbook 只能装 OS X Mountain Lion 10.8,但是呢 MacBo ...
- 从几篇文字得到关于web app开发的性能问题的答案
1. http://blogs.adobe.com/creativecloud/are-mobile-web-apps-slow/ 2. http://software.intel.com/zh-cn ...
- 关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案
不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改” 解决方法: 打开SQL SERVER 2008 工具-->选项- ...
- ajax跨子域请求的两种现代方法
因为面向互联网的性质,我们公司的大部分系统都采用多子域的方式进行开发和部署,以达到松耦合和分布式的目的,因此子系统间的交互不可避免.虽然通过后台的rpc框架解决了大部分的交互问题,但有些情况下,前端直 ...