⑴ 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里正則表達式是什麼意思啊
就是用來匹配某種格式的。
一個正則表達式,就是用某種模式去匹配一類字元串的一個公式。很多人因為它們看上去比較古怪而且復雜所以不敢去使用——很不幸,這篇文章也不能夠改變這一點,不過,經過一點點練習之後我就開始覺得這些復雜的表達式其實寫起來還是相當簡單的,而且,一旦你弄懂它們,你就能把數小時辛苦而且易錯的文本處理工作壓縮在幾分鍾(甚至幾秒鍾)內完成.