ndfweb.cn

vb.net的正則表達式


2021-04-23 10:46:15 (4037)



正則表達式的作用是從一個字符串中捕獲符合要求的字符串。


使用正則表達式需使用一下語句:

   Import System.Globalization

   Import System.IO

   Import System.Text

   Import.System.Text.RegularExpressions

先看一個最簡單的捕獲:

正則表達式 /123/ 捕獲任意字符串中的 ”123” 。如:

“a123b”

“aaab12bb13123c”

匹配:

如果一個字符串中存在至少一個捕獲,就算這個正則表達式匹配此字符串。如果隻存在一個捕獲,而且此捕獲是整個字符串,則算完全匹配。

“或”符號(“|”):

正則表達式 /123|a/ 捕獲 ”123” 或者 ”12a”,如:

“12ac123”

“12abcc”

“01262312343”

並:

任何兩個正則表達式放在一起就成了並,如 /a/ 是一個合法的正則表達式,它捕獲 ”a” 字符, /b/ 也是一個合法的正則表達式,它捕獲 ”b” 字符。/ab/ 這個正則表達式捕獲連在一起的 ”ab” 這樣的字符串。在並的時候,兩個正則表達式之間形成了斷言。(關於斷言會在下麵講到)。

括號:

可以用括號可以者強調符號的結合順序,如正則表達式/(123)|(abc)/”捕獲”123”或者”abc”

字符類:

可以用 [abc] 的形式來表示 (a|b|c) ,如:

正則表達式 /[abc]/ 捕獲 ”a” 、”b” 或者 ”c”。

字符類的特殊構造:

“^” 放在 [] 的開頭表示不捕獲這些字符,如:

正則表達式 /[^abc]/ 捕獲除了 ”a” 、 ”b” 和 ”c” 以外的任何字符。

“-“ 放在兩個字符之間,表示匹配在字符表上這兩個字符之間的所有字符。如:

[a-z] = [abcdefghijklmnopqrstuvwxyz]

[a-Z] = [a-zA-Z] = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]

[0-9] = [0123456789]

特殊的字符類:

\w = [a-zA-Z_0-9]

\W = [^\w]

\s = [ \f\n\r\t\v](注1)

\S = [^\s]

\d = [0-9]

\D = [^\d]

. = 任何字符(如果沒有加SingleLine參數則不匹配”\n”)

注1:\f\n\r\t\v與C語言轉義字符串含義相同。如(\n換行符, \t跳格符)

重複:

正則表達式 /a{1,3}/表示/(a)|(aa)|(aaa)/,捕獲”a”、”aa”或者”aaa”。

另有特殊字符約定如下:

* = {0,無窮大}

+ = {1,無窮大}

? = {0,1}

重複可以與括號一起用,如:

正則表達式 /(abc){1,2}/捕獲”abc”或者”abcabc”。

零重複的作用:

零重複代表不捕獲任何字符。單獨使用無意義,但可以組合。如:

正則表達式/abc?/捕獲”ab”或者”abc”。

以上所有的不包含無窮大重複的正則表達式都可以轉化為隻包含,或、並和括號的正則表達式。

(如數學中的3x5 = 1x5+2x5 ^_^)

如正則表達式:/([abc]1){2,3}/ = /(((a|b|c)1)((a|b|c)1))|(((a|b|c)1)((a|b|c)1)((a|b|c)1))/

斷言:

任何兩個合法的正則表達式並在一起的時候,在它們之間就形成斷言。如正則表達式: /ab/ 是由正則表達式 /a/ 和 /b/ 並而組成的,在a和b之間就形成了斷言。/ab/ 正則表達式中的 /a/ 隻能捕獲在字符 ”b” 前麵的 ”a”,而 /b/ 也隻能捕獲字符 ”a” 後麵的 ”b”。

零寬度(非捕獲)斷言符:

“$”斷言此處一定是字符串的結尾,如:

正則表達式/abc$/捕獲在字符串結尾處的abc,而忽略字符串中間任何的”abc”,如:

“123abcc”,無捕獲,不匹配。

“$” 斷言此處一定是字符串的結尾,如:

正則表達式 /abc$/捕獲在字符串結尾處的abc,而忽略字符串中間任何的 ”abc”,如:

“123abcc”,無捕獲,不匹配

“abcsabc”

“^”斷言此處一定是字符串的開頭。


本文版权:http://www.ndfweb.cn/news-837.html
  NDF俱乐部
  国际域名注册
  建站咨询
简体中文 NDF网站建设淘宝店 | ICO图标在线生成 | 外贸网站建设 | 联系我们
©2007-2025 NDF Corporation 鲁ICP备08005967号 Sitemap - RSSRSS订阅