⑴ java正则表达式是什么
java正则表达式是为\d+.{0,1}d*。需要转义反斜杠,所以有两个反斜杠。这个正则表达式表示整数或者小数\d+表示1个或多个0到9的数字,是整数部分至少是一位整数的整数部分0,1表示0个或1个小数点,因为点在正则表达式中表示任意字符,所以这里需要用转义符。
使它变回原来的小数点的意思,0,1表示0或1个,也就是可以有或者没有小数点\d*表示0个或多个0到9的数字,是小数部分,0个时表示这个数没有小数部分,只有整数部分。
java的概念
使用单个字符串来描述。匹配一系列符合某个语句规则的字符串,定义了字符串的模式。正则表达式主要用于字符串中,为方便字符串操作,文本的复杂处理。
字符串的操作主要有四种,匹配、切割、替换、获取。匹配一些字符串,根据题目要求。
⑵ 求java正则表达式,匹配pdf或者JPEG文件名。
搂着这个要看情况更具文件名特点来,
如果都是AD开头,那么:AD_.*?\.pdf
如果文件名没有特点,但是在路径中:[\\/].*?\.pdf
总之要弄懂原理灵活运用
⑶ 《精通正则表达式第三版》pdf下载在线阅读全文,求百度网盘云资源
《精通正则表达式第三版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1rF2zZTMX_0ugMXDB34XTIg
⑷ String正则表达式(regularExpression) 提取 求助!
Java正则表达式:<a\s+href="([^"]*?)".*?>([^<>]*?)</a>
完整的Java程序如下:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassGG{
publicstaticvoidmain(String[]args){
Strings="<tdclass="qsgg"><ahref="/finalpage/2013-03-08/543210.PDF"target=new>网络知道:2012年我们一起加油</a><imgalign=absMiddleborder=0height=16src='/imagesnew/Pdf.gif'width=16>(503K)</td>";
Stringregex="<a\s+href="([^"]*?)".*?>([^<>]*?)</a>";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
if(m.group(2).contains("摘要")){
System.out.println("字符串中有“摘要”这两个字");
}else{
System.out.println("字符串中没有“摘要”这两个字");
}
}
}
}
运行结果:
/finalpage/2013-03-08/543210.PDF
网络知道:2012年我们一起加油
字符串中没有“摘要”这两个字
⑸ java中和javascript中的函数、正则表达式、数组、选择结构和循环函数可以通用吗 有什么区别
刚好你问的我都不陌生,挑战一下我的理解力与总结能力。
首先说明两门语言不一样,除了有java这个字,语句块的表达一样外几乎没啥共同性。javascript只因单年java太流行,自己也跟着有个java的名称,设计javascript的人初衷的确想弄的跟java一样,但是做不到。
javascript是解释执行的,需要宿主环境来执行,比如浏览器就是一个宿主环境,node.js提供的javascript也是个宿主环境,还有adobe pdf也提供了javascript的宿主环境,javascript的宿主环境很多,windows office 苹果的store有。再余下的还有不知道了。
java编译执行的,最先设计用来,给美国的有线电视机顶盒,写控制代码,发明之初100多两百个类,比现在好学,运行环境要求也不严格。很小的内存,很少的cpu资源就可以跑起来,怀念可惜这方面的功能我不会用。后来java的设计团队觉得,java应该有更大作为。在浏览器开发设计盛行的90年代,java的设计者用java开发过浏览器,在浏览器上发展applet,可惜微软不待见java,java在浏览器方面的努力,再牛(我看过很多java方面的书,很多设计理念都很好,只可惜运行平台不是自己的),也失败了。最终java实现了跨平台发展,这才是java的活力所在。所谓跨平台虚拟机也要有人提供,sun公司自己写的虚拟机还行。见过hp-unix上跑的虚拟机问题不少!!!
javascript规范里面说明,javascript是非类型安全的。而java是类型安全的,区别很大。
上个例子:
js:
var myLover = true;
console.log(myLover);
myLover = "myself";
console.log(myLover);
js这样写不会有问题的,同一变量可存储逻辑值,也可存储字符串。甚至再放函数引用也行,对象引用也可以。
java:
public class TestDriver {
public void main(String[] args)
{
String s = "myLOver";
//下面会出错的,编译都通不过,s只能存储字符串型的数据,这就是所谓的类型安全!
//s = true;
System.out.println(s);
}
}
java我的理解一门真正的编程语言,语法结构严谨,必须按照一定规则写,否则就是错误。javascript语法松散,缺个;没事的,javascript支持运行时的动态特性,比如运行时添加方法,成员等等。java没这特性,java的运行时动态性,我知道的主要是反射(牺牲了语言的安全性,很多功能都依赖反射,还不好理解!),比如动态代理,json、xml、orm框架实体与数据之间的自动转化都需要反射支持。反射不安全在于,可以随便访问类或实例的任何成员,任何方法,包括申明为private的域与方法。
铺垫了这么多,来回答你想知道的问题。
先说函数,函数只有javascript中才有,java中绝对没有函数。java是真正面向对象的语言,要想使用的基本功能,在java.lang与java.util这两个包中去找,全部是以类的方式提供。这里没有绝对,函数也好,类中的方法也好,实现思路有可能是通用的。javascript也可以实现面向对象编程,但我见到老点的代码,都函数式面向过程编程。直到学jquery的时候才看到面向对象编程方法。但我不喜欢,jquery的扩展方式。javascript面向对象方式amd值得推崇,dojo框架用的就是amd,还有国内阿里的前端工程师更牛融合jquery与amd的优点,自己创建了一个效率很不错的框架。
再说正则表达式:
js里面的正则表达式两种方式使用:
第一、用法较常见,包括js框架中都这种用法,我采纳的这种用法。
var regExp = /^http:\/\//gi;
var isUrl = regExp.test("http://www..com/register");
console.log(isUrl)
第二种、用正则表示对象,这块不常用,要写样例还需要查api参考,不给了。
java常用的正则表达式也是两种:
第一种、java.util包中提供的,这个也要查api不谢样例了;
第二种、第三方提供的,传说效率很高,我倒是没发现。名字忘记了,我一般用spring中用的那个,平时写的程序不在这台电脑上,不好查,抱歉。
javascript 与 java的正则表达式本身相同的,如果你会用javascript写正则,那么一定也很快会使用java写正则,两门语言对正则的支持都很完美,几乎支持正则中的所有功能,我所有项目中使用的正则没有匹配不了的。两门语言在现代机器上执行效率都很好。
数组,javascript只支持一维数组,但是可以模拟出多维数组:定义如下:
var mutipleArray = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]];
for(var i=0;i<mutipleArray.length;i++)
{
for(var j=0;j<mutipleArray[i].length;j++)
{
console.log(mutipleArray[i][j]);
}
console.log("**************************");
}
java的数组,可支持多维数组,但一般用得少一点,一般都用List借口的实现类顶替。
javascript的数组,什么都可以存储,无论是对象,函数,原始类型,没有要求的,所谓类型不安全!
java的数组只能存储特定的类型,java.lang.Object,可以存任何对象类型,特例不要钻牛角尖,基本类型与Object类型混合存就不行,自动打包的功能不要说,这也是特例。
从上面的比较来看,java与javascript的数组,不太一样,语言本身就决定了他们两连使用都不能相通。javascript数组有队列,排序,删除指定序列的操作功能,我的理解一个大杂烩,用数组的功能也可以实现类似list,map,迭代等等功能,参见jquery框架。java的队列有专门的实现类。并且java在这方法提供的数据结构要远远比javascript丰富。
再来说选择结构,javascript的选择结构语法貌似与java相同,javascript的功能要更强大,貌似什么值都行。java只能是数值型的,用得反而少,java这点实现不太好。jdk5后有枚举改善了不少。因此,选择结构也不相通。
循环函数,没看懂,你要说的是循环控制语句,这两个倒是基本一样,差别是:
java编列数组(也包括list的实现类这么写的):
for(Object o : objArr)
{
System.out.println(o);
}
而javascript中类似的结构,是遍列对象用的:
for(var p in obj)
{
//如果obj是数组,p是数组的索引,obj[p]是数组的值
//如果obj是对象,p是对象的属性(有可能是对象域名称或方法名称,obj[p]是对象域值或对象方法)
console.log(p,obj[p]);
}
现在的js框架中都会有foreach迭代,类似java迭代的用法,注意循环!如jquery中的each。
//这不是语言提供的功能,别人重新封装出来的。
$.each(arr,function(i,item){
console.log(item);
});
综上所属,java与javascript差别很大。包括楼主你想知道的问题,差别都很大。
希望我写这么多能帮到你。
⑹ java用正则表达式判断文件路径格式是否正确。
//"^[A-z]:\\(.+?\\)*$"不能确定深度匹配0到多次就可以了
Stringsource="z:\java\kl\$kls\";
System.out.println(source.matches("^[A-z]:\\(.+?\\)*$"));
⑺ 如何运用Java组件itext生成pdf
itext是生成pdf的一个开源组件,首先去官网下载itext相关的jar包,然后内运用相关api即可快速生成一容个pdf文档,好像还有一个组件叫Flying Saucer(飞碟)也是基于itext的pdf生成组件
具体参考资料:
http://news.newhua.com/news/2011/0111/113128.shtml
⑻ 求java 正则表达式的写法
按照你的要求编写的java程序如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Postfix{
public static void main(String[] args){
String s="/ifs/dataiq/36000036118/01 ";
s=s+"/ifs/dataiq/36000036118/01/36040021/2019-12-13/";
s=s+"0690948/36040021-0690948440.pdf ";
s=s+"/ifs/dataiq/36000036118/02/36040022/2020-12-13/";
s=s+"0690933/36040021-0690948440.cfg ";
s=s+"/ifs/dataiq/36000036118/03/36040023/2022-11-13/";
s=s+"0690955/36040021-0690948440.cxx ";
s=s+"/ifs/dataiq/36000036118/04/36040024/2023-09-13/";
s=s+"0690955/36040021-0690948440.txt";
String regex="(?im)^.*?\.(pdf|cfg|cxx|txt)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
}
}
⑼ Java中什么是正则表达式
众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况内发生,而这些情况有容时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。
大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。
⑽ java里正则表达式是什么意思啊
就是用来匹配某种格式的。
一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用——很不幸,这篇文章也不能够改变这一点,不过,经过一点点练习之后我就开始觉得这些复杂的表达式其实写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作压缩在几分钟(甚至几秒钟)内完成.