QT的正規表示法應用看官網說明就有了。

http://doc.qt.io/qt-5/qregularexpression.html

 

轉貼下面的文章,這篇文章非常的清楚好懂。

http://blog.kkbruce.net/2012/02/javascript-regular-expression.html#.Vw8SG_l97IU

 

JAVASCRIPT - 表單元素 - REGULAR EXPRESSION

 

REGULAR EXPRESSION

 
Regular Expression(正規表達式) - 基本字元
名稱 說明
\n 換行符號
\r Enter
\t Tab
\xHex 16進位ASCII
\xOct 8進位ASCII
\符號 轉義,讓符號只是符號,無RE作用

因為符號在RE裡有其他作用,\.代表.、\?代表?,符號有:.、?、/、\、[、]{、}、(、)、+、*、|。
 
Regular Expression(正規表達式) - 字元集"["與"]"符號"
名稱 說明
[abc] 代表英文a、b、c
[a-z] 代表26個英文小寫
[A-Z] 代表26個英文大寫
[0-9] 代表數字0到9
[a-zA-Z] 代表所有大小寫英文
[^abc] 除了a、b、c以外任何字元
- 英文或數字的一個範圍
[^] 在[]裡的^為排除的意思

[ ]代表一個區段、段落。
 
Regular Expression(正規表達式) - 常用範圍
名稱 說明
\w [0-9a-zA-Z_],任何英數字和底線
\W [^0-9a-zA-Z_],也就是^\w的意思
\d [0-9],任何數字
\D [^0-9],也就是^\w的意思
\s 比對空格,空白字元(space)、tab、換行字元、return/enter
. .(點)比較任何字元,換行字元(newline)除外

以上都是常用的Escape字串。
 

Regular Expression語法

 
1 var reName = /pattern/[g|i|gi];

使用變數來儲存pattern,遇/.../字串自動建立RegExp物件。把pattern被在"//"符號之間,就是你所要過濾的規則,例如/[0-9]/。
 

[g|i|gi]選擇性參數,尋找方式

  • g:比對字串中所有符合pattern字串的子字串, 如果沒有設定,將只找第一個符合pattern的字串
  • i:不區分pattern字串的英文大小寫
 
尋找方式範例
 
1 // jscript(j小寫)和Jscript(J大寫)都符合
2 var reJS1 = /[jJ]script/;
3 // 2*2會出現四種符合的組合
4 // javascript、javaScript、Javascript、JavaScript
5 var reJS2 = /[jJ]ava[sS]cript/;

^開頭$結尾

 
1 // 找出開頭是This的字串
2 // 注意,此^不是放在[^],位置不同作用不同
3 var reStar = /^This/;
4 // 找出結尾是bye.的字串
5 var reEnd = /bye.$/
 
Regular Expression(正規表達式) - ^開頭$結尾
名稱 說明
^ 比對字串開頭
$ 比較字串結尾
 

^開頭$結尾範例

 
1 // 需要指定「出現次數」,例如身分證
2 // A123456789,第一碼為英文,第二碼為男女,3-9碼為數字
3 var reID = /^[a-zA-Z]{1}[1-2]{1}[0-9]{8}/;
 

量詞

 
Regular Expression(正規表達式) - 量詞
名稱 說明(次數)
? 0或1次
* 0或多次
+ 1或多次
{n} 出現n次
{n,} 至少n次
{n,m} n到m次
( ) 集合字元或/和中介字元,成為子樣式

最後一個(),我們舉個例子,「/(Hot)? ?Donuts/」過濾條件,可比對出Donuts或Hot Donuts。而「/(red|blue) pill/] 過濾條件,可比對出red pill或blue pill。

定義好樣式(pattern)後,可使用test()方法來測試。
 
1 // 定義過濾條件
2 var regex = /^\d{5}/$;
3 // 使用test()測試是否符適合條件
4 if (!regex.test(inputField.Value))
5   ...
 

RegExp物件

 
1 var objRE = new RegExp("pattern字串", "g|i|gi");

第一個pattern字串(不需放在//符號之間),第二個為尋找方式的參數。使用RegExp物件的test()方法進行比對,符合回傳true。
 
1 objRE.test(strValue);

如果在JavaScript字串變數需要尋找是否擁有符合Regular Expression的pattern子字串,此時請使用String物件的match()方法,例如,
 
1 String.match(objRE);

字串(String)的match()方法範例,
 
1 var str = "This is book.";
2 var objRE = new RegExp("is", "g");
3 var result = str.match(objRE);

我們將比對結果儲存起來,然後,
 
1 // 沒有會傳回null,有會傳回Array
2 // is, is --> 陣列
3 document.write(result);
4 // 傳回符合數量
5 // 2
6 document.write(result.length);
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 mybeauty 的頭像
    mybeauty

    只是記事本

    mybeauty 發表在 痞客邦 留言(0) 人氣()