拳皇命运安迪值得培养:在C#中利用正則表達式實現字符串的查找(1)

拳皇命运9集  發布時間:2019-05-28 11:58:40

拳皇命运9集 www.chmkl.icu 本文關鍵詞:aspnet正則表達式大全及后臺代碼使用

aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全

r = new Regex("\\s2000"); // 定義表達式

3.2 Match 類表示正則表達式匹配操作的結果

以下示例使用 Regex 類的 Match 方法返回 Match 類型的對象,以便找到輸入字符串中第一個匹配。此示例使用 Match 類的 Match.Success 屬性來指示是否已找到匹配。

Regex r = new Regex("abc"); // 定義一個Regex對象實例

Match m = r.Match("123ab56"); // 在字符串中匹配

if (m.Success)

{

Console.WriteLine("Found match at position " + m.Index); //輸入匹配字符的位置

}

3.3 MatchCollection 類表示非重疊匹配的序列

該集合為只讀的,并且沒有公共構造函數。MatchCollection 的實例是由 Regex.Matches 屬性返回的。使用 Regex 類的 Matches 方法,通過在輸入字符串中找到的所有匹配填充 MatchCollection。下面代碼示例演示了如何將集合復制到一個字符串數組(保留每一匹配)和一個整數數組(指示每一匹配的位置)中。

MatchCollection mc;

String[] results = new String[20];

int[] matchposition = new int[20];

Regex r = new Regex("abc"); //定義一個Regex對象實例

mc = r.Matches("123ababcd");

java中字符串是通過字符數組來支持實現的,在jdk6中,string類包含3個域,char[] value、int offset、int count。貪婪匹配:先看整個字符串是不是一個匹配,如果沒有發現匹配,它去掉字符串中最后一個字符并再次嘗試,如果還沒有發現匹配,那么再次去掉最后一個字符,這個過程會一直重復直到發現一個匹配或字符串不剩一個字符為止。一個通用表達式是由一些元素組成的.這些元素是通用表達式中最小的匹配單位.一個元素可以是一個字符,例如a,與字符a相匹配,或者是一個特殊字符,例如$,匹配一行的結束.還可以是其他的字符,例如\來匹配一個單詞的結束.也就是說要將我們想要查找的字符串放在這兩個中間.這樣我們就可以精確的來查找我們想要查找的字符串,而不會有其他的一些匹配情況.而如果我們用簡單字符串形式來查找,我們就會得到許多的匹配情況,甚至在一個單詞中的組成部分也可以成為匹配情況.例如在文件中有californian,unfortunately.如果用命令/for來查找,那么就會找到這兩個單詞.而如果我們用通用表達式\來進行查找,則只會精確的查找到for,而不會用其他的匹配情況.這時的命令形式如下:。

{

results[i] = mc[i].Value; //將匹配的字符串添在字符串數組中

matchposition[i] = mc[i].Index; //記錄匹配字符的位置

aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全

}

3.4 GroupCollection 類表示捕獲的組的集合

該集合為只讀的,并且沒有公共構造函數。GroupCollection 的實例在 Match.Groups 屬性返回的集合中返回。下面的控制臺應用程序查找并輸出由正則表達式捕獲的組的數目aspnet正則表達式大全及后臺代碼使用。

using System;

using System.Text.RegularExpressions;

public class RegexTest

{

public static void RunTest()

{

Regex r = new Regex("(a(b))c"); //定義組

Match m = r.Match("abdabc");

Console.WriteLine("Number of groups found = " + m.Groups.Count);

}

public static void Main()

{

RunTest();

}

}

該示例產生下面的輸出:

Number of groups found = 3

aspnet正則表達式大全_aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全及后臺代碼使用

3.5 CaptureCollection 類表示捕獲的子字符串的序列

這個例子用example 1里的字符串與正則表達式進行匹配(和捕獲),并演示了如何在正則表達式執行過后引用捕獲到的匹配。當offset=2時,正則表達式為:(^.{2}) .表示除\n之外的任意字符,后面加{2} 就是匹配以數字或字母組成的前兩個連續字符,加()就會將匹配到的結果提取出來,然后通過replace將匹配到的結果替換為新的字符串,形如:結果=結果+str。一個字符組只能匹配目標文本中的單個字符,而每個多選結構自身可能是完整的正則表達式,都可以匹配任意長度的文本。

下面的程序使用正則表達式 (Abc)+來查找字符串"XYZAbcAbcAbcXYZAbcAb"中的一個或多個匹配,闡釋了使用 Captures 屬性來返回多組捕獲的子字符串。

using System;

using System.Text.RegularExpressions;

public class RegexTest

{

public static void RunTest()

{

int counter;

Match m;

CaptureCollection cc;

GroupCollection gc;

Regex r = new Regex("(Abc)+"); //查找"Abc"

m = r.Match("XYZAbcAbcAbcXYZAbcAb"); //設定要查找的字符串

gc = m.Groups;

//輸出查找組的數目

Console.WriteLine("Captured groups = " + gc.Count.ToString());

// Loop through each group.

for (int i=0; i < gc.Count; i++) //查找每一個組

aspnet正則表達式大全_aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全及后臺代碼使用

{

cc = gc[i].Captures;

counter = cc.Count;

Console.WriteLine("Captures count = " + counter.ToString());

for (int ii = 0; ii < counter; ii++)

{

// Print capture and position.

Console.WriteLine(cc[ii] + " Starts at character " +

cc[ii].Index); //輸入捕獲位置

}

}

}

public static void Main() {

RunTest();

}

}

此例返回下面的輸出結果:

Captured groups = 2

Captures count = 1

AbcAbcAbc Starts at character 3

aspnet正則表達式大全_aspnet正則表達式大全及后臺代碼使用_aspnet正則表達式大全及后臺代碼使用

Captures count = 3

Abc Starts at character 3

Abc Starts at character 6

Abc Starts at character 9

3.6 Capture 類包含來自單個子表達式捕獲的結果

在 Group 集合中循環,從 Group 的每一成員中提取 Capture 集合,并且將變量 posn 和 length 分別分配給找到每一字符串的初始字符串中的字符位置,以及每一字符串的長度。

Regex r;

Match m;

CaptureCollection cc;

int posn, length;

r = new Regex("(abc)*");

m = r.Match("bcabcabc");

for (int i=0; m.Groups[i].Value != ""; i++)

{

cc = m.Groups[i].Captures;

for (int j = 0; j < cc.Count; j++)

{

posn = cc[j].Index; //捕獲對象位置

length = cc[j].Length; //捕獲對象長度

}

}

圖1:對象關系

例如jython的list類型可以是一個數字的序列、字符串的序列、字符的序列或它們的組合。當選取上述任意一個序列后,如m序列,將其中可用的編碼,即正交碼,兩兩組合,并劃分為若干組,各組分別代表不同用戶,組內兩個碼型分別表示原始信息"1" 和"0"。當選取上述任意一個序列后,如m序列,將其中可用的編碼,即正交碼,兩兩組合,并劃分為若干組,各組分別代表不同用戶,組內兩個碼型分別表示原始信息"1"和"0"。

本文來自互聯網,由機器人自動采編,文章內容不代表本站觀點,請讀者自行辨別信息真偽,如有發現不適內容,請及時聯系站長處理。

    相關閱讀