當前位置:首頁 » 網頁前端 » 腳本語言正則
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

腳本語言正則

發布時間: 2022-11-29 11:05:16

1. 如何使用正則表達式

在Sun的Java JDK 1.40版本中,Java自帶了支持正則表達式的包,本文就拋磚引玉地介紹了如何使用java.util.regex包。

可粗略估計一下,除了偶爾用Linux的外,其他Linu x用戶都會遇到正則表達式。正則表達式是個極端強大工具,而且在字元串模式-匹配和字元串模式-替換方面富有彈性。在Unix世界裡,正則表達式幾乎沒有什麼限制,可肯定的是,它應用非常之廣泛。

正則表達式的引擎已被許多普通的Unix工具所實現,包括grep,awk,vi和Emacs等。此外,許多使用比較廣泛的腳本語言也支持正則表達式,比如Python,Tcl,JavaScript,以及最著名的Perl。

我很早以前就是個Perl方面的黑客,如果你和我一樣話,你也會非常依賴你手邊的這些強大的text-munging工具。近幾年來,像其他程序開發者一樣,我也越來越關注Java的開發。

Java作為一種開發語言,有許多值得推薦的地方,但是它一直以來沒有自帶對正則表達式的支持。直到最近,藉助於第三方的類庫,Java開始支持正則表達式,但這些第三方的類庫都不一致、兼容性差,而且維護代碼起來很糟糕。這個缺點,對我選擇Java作為首要的開發工具來說,一直是個巨大的顧慮之處。

你可以想像,當我知道Sun的Java JDK 1.40版本包含了java.util.regex(一個完全開放、自帶的正則表達式包)時,是多麼的高興!很搞笑的說,我花好些時間去挖掘這個被隱藏起來的寶石。我非常驚奇的是,Java這樣的一個很大改進(自帶了java.util.regex包)為什麼不多公開一點呢?!

最近,Java雙腳都跳進了正則表達式的世界。java.util.regex包在支持正則表達也有它的過人之處,另外Java也提供詳細的相關說明文檔。使得朦朦朧朧的regex神秘景象也慢慢被撥開。有一些正則表達式的構成(可能最顯著的是,在於糅合了字元類庫)在Perl都找不到。

在regex包中,包括了兩個類,Pattern(模式類)和Matcher(匹配器類)。Pattern類是用來表達和陳述所要搜索模式的對象,Matcher類是真正影響搜索的對象。另加一個新的例外類,PatternSyntaxException,當遇到不合法的搜索模式時,會拋出例外。

即使對正則表達式很熟悉,你會發現,通過java使用正則表達式也相當簡單。要說明的一點是,對那些被Perl的單行匹配所寵壞的Perl狂熱愛好者來說,在使用java的regex包進行替換操作時,會比他們所以前常用的方法費事些。

本文的局限之處,它不是一篇正則表達式用法的完全教程。如果讀者要對正則表達進一步了解的話,推薦閱讀Jeffrey Frieldl的Mastering Regular Expressions,該書由O』Reilly出版社出版。我下面就舉一些例子來教讀者如何使用正則表達式,以及如何更簡單地去使用它。

設計一個簡單的表達式來匹配任何電話號碼數字可能是比較復雜的事情,原因在於電話號碼格式有很多種情況。所有必須選擇一個比較有效的模式。比如:(212) 555-1212, 212-555-1212和212 555 1212,某些人會認為它們都是等價的。

首先讓我們構成一個正則表達式。為簡單起見,先構成一個正則表達式來識別下面格式的電話號碼數字:(nnn)nnn-nnnn。

第一步,創建一個pattern對象來匹配上面的子字元串。一旦程序運行後,如果需要的話,可以讓這個對象一般化。匹配上面格式的正則表達可以這樣構成:(\d{3})\s\d{3}-\d{4},其中\d單字元類型用來匹配從0到9的任何數字,另外{3}重復符號,是個簡便的記號,用來表示有3個連續的數字位,也等效於(\d\d\d)。\s也另外一個比較有用的單字元類型,用來匹配空格,比如Space鍵,tab鍵和換行符。

是不是很簡單?但是,如果把這個正則表達式的模式用在java程序中,還要做兩件事。對java的解釋器來說,在反斜線字元(\)前的字元有特殊的含義。在java中,與regex有關的包,並不都能理解和識別反斜線字元(\),盡管可以試試看。但為避免這一點,即為了讓反斜線字元(\)在模式對象中被完全地傳遞,應該用雙反斜線字元(\)。此外圓括弧在正則表達中兩層含義,如果想讓它解釋為字面上意思(即圓括弧),也需要在它前面用雙反斜線字元(\)。也就是像下面的一樣:

\\(\\d{3}\\)\\s\\d{3}-\\d{4}

現在介紹怎樣在java代碼中實現剛才所講的正則表達式。要記住的事,在用正則表達式的包時,在你所定義的類前需要包含該包,也就是這樣的一行:

import java.util.regex.*;

下面的一段代碼實現的功能是,從一個文本文件逐行讀入,並逐行搜索電話號碼數字,一旦找到所匹配的,然後輸出在控制台。

BufferedReader in;

Pattern pattern = Pattern.compile("\\(\\d{3}\\)\\s\\d{3}-\\d{4}");

in = new BufferedReader(new FileReader("phone"));

String s;

while ((s = in.readLine()) != null)

{

Matcher matcher = pattern.matcher(s);

if (matcher.find())

{

System.out.println(matcher.group());

}

}

in.close();

對那些熟悉用Python或Javascript來實現正則表達式的人來說,這段代碼很平常。在Python和Javascript這些語言中,或者其他的語言,這些正則表達式一旦明確地編譯過後,你想用到哪裡都可以。與Perl的單步匹配相比,看起來多多做了些工作,但這並不很費事。

find()方法,就像你所想像的,用來搜索與正則表達式相匹配的任何目標字元串,group()方法,用來返回包含了所匹配文本的字元串。應注意的是,上面的代碼,僅用在每行只能含有一個匹配的電話號碼數字字元串時。可以肯定的說,java的正則表達式包能用在一行含有多個匹配目標時的搜索。本文的原意在於舉一些簡單的例子來激起讀者進一步去學習java自帶的正則表達式包,所以對此就沒有進行深入的探討。

這相當漂亮吧! 但是很遺憾的是,這僅是個電話號碼匹配器。很明顯,還有兩點可以改進。如果在電話號碼的開頭,即區位號和本地號碼之間可能會有空格。我們也可匹配這些情況,則通過在正則表達式中加入\s?來實現,其中?元字元表示在模式可能有0或1個空格符。

第二點是,在本地號碼位的前三位和後四位數字間有可能是空格符,而不是連字型大小,更有勝者,或根本就沒有分隔符,就是7位數字連在一起。對這幾種情況,我們可以用(-|)?來解決。這個結構的正則表達式就是轉換器,它能匹配上面所說的幾種情況。在()能含有管道符|時,它能匹配是否含有空格符或連字元,而尾部的?元字元表示是否根本沒有分隔符的情況。

最後,區位號也可能沒有包含在圓括弧內,對此可以簡單地在圓括弧後附上?元字元,但這不是一個很好的解決方法。因為它也包含了不配對的圓括弧,比如"(555" 或 "555)"。相反,我們可以通過另一種轉換器來強迫讓電話號碼是否帶有有圓括弧:(\(\d{3}\)|\d{3})。如果我們把上面代碼中的正則表達式用這些改進後的來替換的話,上面的代碼就成了一個非常有用的電話號碼數字匹配器:

Pattern pattern =

Pattern.compile("(\\(\\d{3}\\)|\\d{3})\\s?\\d{3}(-|)?\\d{4}");

可以確定的是,你可以自己試著進一步改進上面的代碼。

現在看看第二個例子,它是從Friedl的中改編過來的。其功能是用來檢查文本文件中是否有重復的單詞,這在印刷排版中會經常遇到,同樣也是個語法檢查器的問題。

匹配單詞,像其他的一樣,也可以通過好幾種的正則表達式來完成。可能最直接的是\b\w+\b,其優點在於只需用少量的regex元字元。其中\w元字元用來匹配從字母a到u的任何字元。+元字元表示匹配匹配一次或多次字元,\b元字元是用來說明匹配單詞的邊界,它可以是空格或任何一種不同的標點符號(包括逗號,句號等)。

現在,我們怎樣來檢查一個給定的單詞是否被重復了三次?為完成這個任務,需充分利用正則表達式中的所熟知的向後掃描。如前面提到的,圓括弧在正則表達式中有幾種不同的用法,一個就是能提供組合類型,組合類型用來保存所匹配的結果或部分匹配的結果(以便後面能用到),即使遇到有相同的模式。在同樣的正則表達中,可能(也通常期望)不止有一個組合類型。在第n個組合類型中匹配結果可以通過向後掃描來獲取到。向後掃描使得搜索重復的單詞非常簡單:\b(\w+)\s+\1\b。

圓括弧形成了一個組合類型,在這個正則表示中它是第一組合類型(也是僅有的一個)。向後掃描\1,指的是任何被\w+所匹配的單詞。我們的正則表達式因此能匹配這樣的單詞,它有一個或多個空格符,後面還跟有一個與此相同的單詞。注意的是,尾部的定位類型(\b)必不可少,它可以防止發生錯誤。如果我們想匹配"Paris in the the spring",而不是匹配"Java's regex package is the theme of this article"。根據java現在的格式,則上面的正則表達式就是:Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b");

最後進一步的修改是讓我們的匹配器對大小寫敏感。比如,下面的情況:"The the theme of this article is the Java's regex package.",這一點在regex中能非常簡單地實現,即通過使用在Pattern類中預定義的靜態標志CASE_INSENSITIVE :

Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b",

Pattern.CASE_INSENSITIVE);

有關正則表達式的話題是非常豐富,而且復雜的,用Java來實現也非常廣泛,則需要對regex包進行的徹底研究,我們在這里所講的只是冰山一角。即使你對正則表達式比較陌生,使用regex包後會很快發現它強大功能和可伸縮性。如果你是個來自Perl或其他語言王國的老練的正則表達式的黑客,使用過regex包後,你將會安心地投入到java的世界,而放棄其他的工具,並把java的regex包看成是手邊必備的利器。

2. 在js中正則表達式如何判斷用戶輸入的內容只能是數字和字母

驗證函數代碼如下:

functioncheck(str){return/^[da-z]+$/i.test(str);}

代碼中關鍵字元含義:

1、^表示匹配字元串的首字元。

2、$表示匹配字元串的尾字元。

3、d表示匹配數字。

4、a-z表示匹配任意英文字母。

5、[]是集合的意思,表示一個字元是[]中任意一個。

6、+表示匹配1個或1個以上,[]+表示匹配[]中的1個以上字元。

7、表達式後面的i表示忽略大小寫。

8、test函數用於驗證字元串是否滿足正則表達式,如果滿足該正則表達式返回true,否則返回false。

(2)腳本語言正則擴展閱讀:

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。

許多程序設計語言都支持利用正則表達式進行字元串操作。例如,在Perl中就內建了一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟體(例如sed和grep)普及開的。正則表達式通常縮寫成「regex」,單數有regexp、regex,復數有regexps、regexes、regexen。

3. 如何在C語言中使用正則表達式

看到大家討論這方面的東西,作點貢獻聊表各位高手對這個版快的無私奉獻 :oops:

如果用戶熟悉Linux下的sed、awk、grep或vi,那麼對正則表達式這一概念肯定不會陌生。由於它可以極大地簡化處理字元串時的復雜
度,因此現在已經在許多Linux實用工具中得到了應用。千萬不要以為正則表達式只是Perl、Python、Bash等腳本語言的專利,作為C語言程序
員,用戶同樣可以在自己的程序中運用正則表達式。

標準的C和C++都不支持正則表達式,但有一些函數庫可以輔助C/C++程序員完成這一功能,其中最著名的當數Philip Hazel的Perl-Compatible Regular Expression庫,許多Linux發行版本都帶有這個函數庫。

編譯正則表達式

為了提高效率,在將一個字元串與正則表達式進行比較之前,首先要用regcomp()函數對它進行編譯,將其轉化為regex_t結構:

int regcomp(regex_t *preg, const char *regex, int cflags);

參數regex是一個字元串,它代表將要被編譯的正則表達式;參數preg指向一個聲明為regex_t的數據結構,用來保存編譯結果;參數cflags決定了正則表達式該如何被處理的細節。

如果函數regcomp()執行成功,並且編譯結果被正確填充到preg中後,函數將返回0,任何其它的返回結果都代表有某種錯誤產生。

匹配正則表達式

一旦用regcomp()函數成功地編譯了正則表達式,接下來就可以調用regexec()函數完成模式匹配:

int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags);
typedef struct {
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;

參數preg指向編譯後的正則表達式,參數string是將要進行匹配的字元串,而參數nmatch和pmatch則用於把匹配結果返回給調用程序,最後一個參數eflags決定了匹配的細節。

在調用函數regexec()進行模式匹配的過程中,可能在字元串string中會有多處與給定的正則表達式相匹配,參數pmatch就是用來保
存這些匹配位置的,而參數nmatch則告訴函數regexec()最多可以把多少個匹配結果填充到pmatch數組中。當regexec()函數成功返
回時,從string+pmatch[0].rm_so到string+pmatch[0].rm_eo是第一個匹配的字元串,而從
string+pmatch[1].rm_so到string+pmatch[1].rm_eo,則是第二個匹配的字元串,依此類推。

釋放正則表達式

無論什麼時候,當不再需要已經編譯過的正則表達式時,都應該調用函數regfree()將其釋放,以免產生內存泄漏。

4. JavaScript腳本語言實現表單數據校驗

嘿嘿..上來提問的,剛好看到你的問題,就順便幫你整理一段代碼出來了,代碼是我做項目中經常用到的,在這里給你做了一些簡化..應該能夠應付你大部分的工作了^^不夠的話可以自己擴展...

代碼部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Check Form</title>
</head>
<script type="text/javascript">
//主函數
function CheckForm(oForm) {
var err_ele = null;
var ele = oForm.elements;
var haserror = false;
//遍歷所有表元素
for(var i=0;i<ele.length;i++) {
//過濾元素類型
if(ele.type != 'submit' && ele.type != 'hidden' && ele.type != 'button') {
//是否需要驗證標簽
var required = ele[i].getAttribute('required');
if(required!="undefined" && (required==""||required=="true"||required=="yes") ) {
if(!validate(ele[i])) {
if(err_ele==null)
err_ele = ele[i];
haserror = true;
break;
}
}
}
}
//判斷是否有沒有通過驗證的項目
if(haserror) {
err_ele.focus();
return false;
} else {
return true;
}
}

//得到表單元素的值
function getvalue(ele) {
var type = ele.getAttribute('type');
switch(type) {
case 'text':
case 'hidden':
case 'password':
case 'file':
case "select-one":
case 'textarea':
return ele.value;
}
}

//檢測函數
function validate(ele) {
//得到設定的檢測函數
var fun = ele.getAttribute('fun');
//自定義提示語句
var custommsg = ele.getAttribute('msg');

if(fun!=null) {
var checkarr = executeFunc(fun,ele);
if(checkarr[2] == 'regxp') { //正則表達式處理
if(!regValidate(getvalue(ele),checkarr[0])) {
//如果有自定義提示語句則使用自定義提示語句
if(custommsg) {
alert(custommsg);
} else {
alert(checkarr[1]);
}
return false;
} else {
//RemoveSpan(ele);
}
} else if(checkarr[2] == 'custom') { //函數自行邏輯處理
//如果驗證通過
if(!checkarr[0]) {
//如果有自定義提示語句則使用自定義提示語句
if(custommsg) {
alert(custommsg);
} else {
alert(checkarr[1]);
}
return false;
}
}
}
return true;
}

//運行函數
function executeFunc(name,element) {
//匹配函數是否帶有參數
if(name.match(/^[\w]+\([\w,\'\"]+\);?$/)) {
return eval(name.replace(/^([\w]+)\(([\w,\'\"]+)\);?$/,'$1($2,element)'));
} else {
return eval(name.match(/^[\w]+\(\)$/) ? name : name + '()');
}
}

//
//判定某個值與表達式是否相符
function regValidate(value,sReg) {
//字元串->正則表達式,不區分大小寫
var reg = new RegExp(sReg ,"i");
if(reg.test(value)) {
return true;
} else {
return false;
}
}

function UserName() {
var rt = new Array();
rt[0] = '^([a-zA-Z0-9]|[._]){4,19}$';
rt[1] = "用戶名必須為4-19個字母和數字組成";
rt[2] = 'regxp';
return rt;
}

function PassWord() {
var rt = new Array();
rt[0] = '^([a-zA-Z0-9]|[._]){6,19}$';
rt[1] = "密碼必須為6-19個字母和數字組成";
rt[2] = 'regxp';
return rt;
}

function notBlank(){
var rt = new Array();
rt[0] = "^\\S+$";
rt[1] = "該項不能為空,且不能含有空格!";
rt[2] = 'regxp';
return rt;
}

function required(){
var rt = new Array();
rt[0] = "^\\S";
rt[1] = "該項不能為空!";
rt[2] = 'regxp';
return rt;
}

//判斷email
function isEmail() {
var rt = new Array();
rt[0] = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
rt[1] = "該項填寫的EMAIL格式不正確!";
rt[2] = 'regxp';
return rt;
}

//只能輸入中文
function onlyZh() {
var rt = new Array();
rt[0] = "^[\u0391-\uFFE5]+$";
rt[1] = "該項只能輸入中文!";
rt[2] = 'regxp';
return rt;
}

//只可輸入英文
function onlyEn() {
var rt = new Array();
rt[0] = "^[A-Za-z]+$";
rt[1] = "該項只能輸入英文!";
rt[2] = 'regxp';
return rt;
}

function enOrNum() {
var rt = new Array();
rt[0] = "^[A-Za-z0-9]+$";
rt[1] = "該項只能輸入英文和數字,且不能有空格!";
rt[2] = 'regxp';
return rt;
}

function isPhone() {
var rt = new Array();
rt[0] = "^((\\(\\d{2,3}\\))|(\\d{3}\\-))?(\\(0\\d{2,3}\\)|0\\d{2,3}-)?[1-9]\\d{6,7}(\\-\\d{1,4})?$";
rt[1] = "應輸入正確的電話號碼格式!";
rt[2] = 'regxp';
return rt;
}

// 自定義驗證函數
function rePassword(ID,ele) {
var rt = new Array();
rt[0] = false;
rt[1] = "再次密碼輸入不一致!";
rt[2] = 'custom';

var password = document.getElementById(ID).value;
if(password != '' || ele.value != ''){
if(password == ele.value)
rt[0] = true;
}
return rt;
}
</script>

<body>
<form id="form1" name="form1" method="post" action="" onsubmit="return CheckForm(this);">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="20%" align="right">用戶名:</td>
<td><input type="text" name="username" id="username" required="true" fun="UserName" msg="自定義提示信息:用戶名不正確,請重新輸入!" /></td>
</tr>
<tr>
<td align="right">密碼:</td>
<td><input type="password" name="password" id="password" required="true" fun="PassWord" /></td>
</tr>
<tr>
<td align="right">確認密碼:</td>
<td><input type="password" name="repassword" id="repassword" required="true" fun="rePassword('password')" /></td>
</tr>
<tr>
<td align="right">電子郵件:</td>
<td><input type="text" name="email" id="email" required="true" fun="isEmail" /></td>
</tr>
<tr>
<td align="right">身份證號:</td>
<td><input type="text" name="idcard" id="idcard" required="true" fun="isIdCard" /></td>
</tr>
<tr>
<td align="right">全中文項:</td>
<td><input type="text" name="chinese" id="chinese" required="true" fun="onlyZh" /></td>
</tr>
<tr>
<td align="right">其它:</td>
<td><input type="text" name="notblank" id="notblank" required="true" fun="notblank" /></td>
</tr>
<tr>
<td align="right"> </td>
<td><input type="submit" name="button" id="button" value="提交" /></td>
</tr>
</table>
</form>

</body>
</html>

5. 正則表達式判斷字元串中包含數字,大寫字元,小寫字母,特殊符號中的幾種怎麼判斷

代碼如下:

function passwordValidate(str){

var rC = {

lW:'[a-z]',//小寫字母

uW:'[A-Z]',//大寫字母

nW:'[0-9]',//漢字

sW:'[\u0020-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E]'//特殊字元

};

(5)腳本語言正則擴展閱讀

正則表達式的基本要素

(1)字元類;

(2)數量限定符;

(3)位置限定符;

(4)特殊符號。

注意:正則表達式基本是與語言無關的,我們可以結合語言/工具與正則表達式進行文本處理,在後面的博客中,我將使用grep來進行驗證。(grep是一款Linux下按行匹配文本的工具,如下,使我們常使用的兩個選項)

-E:使用擴展正則匹配;

--color:將匹配得到的內容進行語法高亮。

定位符使您能夠將正則表達式固定到行首或行尾。它們還使您能夠創建這樣的正則表達式,這些正則表達式出現在一個單詞內、在一個單詞的開頭或者一個單詞的結尾。

定位符用來描述字元串或單詞的邊界,^和$分別指字元串的開始與結束,描述單詞的前或後邊界,B表示非單詞邊界。

6. 各種腳本語言,比如shell和tcl、perl有啥區別呢

一、指代不同

1、perl:一種功能豐富的計算機程序語言,運行在超過100種計算機平台上。

2、tcl:工具命令語言。

3、shell:為使用者提供操作界面」的軟體(命令解析器)。

二、特性不同

1、perl:l借取了C、sed、awk、shell腳本語言以及很多其他程序語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。

2、tcl:本身不提供面向對象的支持。但是語言本身很容易擴展到支持面向對象。許多C語言擴展都提供面向對象能力,包括XOTcl,Incr Tcl等。另外SNIT擴展本身就是用TCL寫的。

3、shell:互動式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令。


三、優勢不同

1、perl:可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。

2、tcl:經常被用於 快速原型開發,腳本編程,GUI和測試等方面。

3、shell:作為程序設計語言,定義了各種變數和參數,並提供了許多在高級語言中才具有的控制結構,包括循環和分支。


7. vbscript腳本語言中正則表達式模式匹配講解

你這是屬於\b的誤用。去掉兩邊的\b就好,你這里\b是多餘的。
\b匹配單詞分界的位置,也就是某個位置,兩邊分別是單詞字元和非單詞字元。單詞字元就是數字字母下劃線,可能包括漢字,看具體情況。非單詞字元就是除了單詞字元以外的字元。
在你的例子中,<的左邊和>的右邊都不能匹配\b,因為這兩個位置的兩邊都是非單詞字元,所以你的匹配失敗了。
如果你明白什麼是匹配位置的話,\b比較好理解。不明白的話繼續提問。
推薦一篇博文,作者很厲害。

8. shell腳本和正則表達式有什麼不同

不一樣的東東。shell腳本是為shell編寫的自動執行命令的集合,是一種編程語言。而正則表達式則是用於文本搜索匹配的一種非常強大的字元串查找工具。兩者不是一樣的,shell腳本中可以使用正則表達式,Javascript腳本也可以使用正則表達式,Php,asp,C,C++和C#,Java等編程語言也都可以使用正則表達式。

9. 腳本語言,這個有用來干什麼,同編程語言有什麼區別

腳本語言,同編程語言的最大區別就是:腳本語言通常都是解釋執行的。例如:UNIX/Linux 系統下的 SHELL 腳本語言(例如:bash、csh 等),它們就是解釋執行的語言,它們無法生成可單獨執行的二進制代碼。而編程語言(例如:C 語言、匯編語言等)是可以將用戶編寫的程序源代碼編譯成可單獨執行的二進制代碼。
腳本語言的最大的優點就是:通過腳本語言的一些專有語法、以及腳本語言所具有的正則表達式,可以對大規模的文本文件進行帶有一定規律性的處理。例如:Linux 系統下的 SHELL 腳本語言編程、以及結合 sed 工具、awk 工具,即可以對大規模的文本文件進行內容過濾和提取等。

10. java,正則表達式中「/」「=」「_」如何表示

正則表達式沒有錯的。。只是字元串的表示有點差異。。
有些腳本語言需要將正則表達式放在
//
兩個斜杠中。。
換成
java
的話只需要將
//
兩個斜杠中的字元串復制過來就可以了。。
string
regex
=
"^([1-9]|[1-9]\\d|1\\d{2}|2[0-1]\\d|22[0-3])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$";