檢查字串是否匹配指定的正則表達(dá)式.
StringRegExp ( "字符串", "表達(dá)式" [, 標(biāo)志 ] [, 偏移量 ]
] )
字符串 | 目標(biāo)字符串 |
表達(dá)式 | 用于比較的正則表達(dá)式. |
標(biāo)志 | [可選參數(shù)] 表示函數(shù)運(yùn)行方式的值. 見(jiàn)下表說(shuō)明. 默認(rèn) 0. |
偏移量 | [可選參數(shù)] 開(kāi)始匹配的字符串位置 (起始于1). 默認(rèn)為 1. |
標(biāo)志 | 值 |
0 | 返回 1(匹配) 或 0(不匹配) |
1 | 返回匹配的數(shù)組. |
2 | 返回完整匹配的數(shù)組 (Perl / PHP 結(jié)構(gòu)). |
3 | 返回全局匹配的數(shù)組. |
4 | 返回完整匹配(Perl/ PHP 結(jié)構(gòu))和全局匹配的數(shù)組. |
返回 @Error | 意義 |
2 | 正則表達(dá)式錯(cuò)誤. @Extended = 正則表達(dá)式中的錯(cuò)誤偏移量. |
返回 @Error | 意義 |
0 | 有效數(shù)組. 為下一個(gè)偏移量檢查 @Extended |
1 | 數(shù)組無(wú)效. 沒(méi)有匹配項(xiàng)目. |
2 | 正則表達(dá)式錯(cuò)誤, 數(shù)組無(wú)效. @Extended = 正則表達(dá)式的偏移量錯(cuò)誤. |
返回 @Error | 意義 |
0 | 有效數(shù)組. |
1 | 數(shù)組無(wú)效. 沒(méi)有匹配項(xiàng)目. |
2 | 正則表達(dá)式錯(cuò)誤, 數(shù)組無(wú)效. @Extended = 正則表達(dá)式的偏移量錯(cuò)誤. |
[ ... ] | 匹配設(shè)置的任何字符.例如: [aeiou] 匹配任何小寫元音字母. 連續(xù)設(shè)置可以在開(kāi)始和結(jié)束之間使用破折號(hào). 例如: [a-z] 匹配任何小寫字符. 設(shè)置中包含破折號(hào) (-), 將其設(shè)置為第一個(gè)或最后一個(gè)字符. 在一組要包含一個(gè)右方括號(hào), 使用作為它的第一個(gè)字符. 例如: [][] 將匹配任意 [ 或 ]. 注意:特殊字符在設(shè)置內(nèi)不保留他們的特有含義, 除非使用 \\, \^, \-,\[ 與 \] 匹配轉(zhuǎn)義字符. |
[^ ... ] | 匹配任何不在指定範(fàn)圍內(nèi)的任意字符. 例如: [^0-9] 匹配任何非數(shù)字. 要匹配 (^) 字符本身, 請(qǐng)使用 (\^). |
[:class:] | 在字符的給定類中匹配字符. 有效類是:
|
[^:class:] | 匹配 'class' 的第一個(gè)字符, 不匹配任何字符. |
( ... ) | 組. 組中的元素可按序重復(fù)處理. 例如: (ab)+ 將匹配 "ab" 或 "abab", 但不匹配
"aba". 組能保存匹配的文本, 以便由函數(shù)返回的數(shù)組后向引用, 但需取決于設(shè)定的標(biāo)志值. |
(?#....) | comment (not nestable). |
(?i) | 不區(qū)分大小寫. 該標(biāo)志對(duì)組無(wú)效. 指定正則表達(dá)式匹配時(shí)不涉及大小寫. |
(?-i) | (默認(rèn)) 區(qū)分大小寫. 該標(biāo)志對(duì)組無(wú)效. 指定正則表達(dá)式匹配時(shí)區(qū)分大小寫. |
(?: ... ) | 非捕獲組. 類似正常組, 但是不記錄數(shù)組的匹配字符, 被匹配的文本也不會(huì)用作后向引用. |
(?i: ... ) | 不區(qū)分大小寫的非捕獲組. 類似的非捕獲組. 在非捕獲組內(nèi)執(zhí)行不區(qū)分大小寫的匹配. |
(?-i: ... ) | 區(qū)分大小寫的非捕獲組. 類似的非捕獲組. 在非捕獲組內(nèi)執(zhí)行區(qū)分大小寫的匹配. |
(?J) | allow duplicate names. |
(?m) | ^ 與 $ 匹配數(shù)據(jù)內(nèi)的換行符. |
(?s) | . 匹配任何包含的換行符. (默認(rèn) "." 不匹配換行) |
(?U) | 反轉(zhuǎn)貪婪量詞. |
(?x) | 忽略空白區(qū)域和 # 注釋. |
(?-...) | unset option(s). |
. | 匹配除換行符以外的任意字符. |
| | 或句點(diǎn)" . ", 可以匹配 | 前的字符也可以匹配 | 之后的字符. |
\ | 轉(zhuǎn)義特殊字符 (讓它匹配實(shí)際字符), 或者引用一個(gè)特殊字符類型 (見(jiàn)下文). |
\\ | 匹配一個(gè)真實(shí)的反斜杠 (\). |
\a | 報(bào)警字符, 即 BEL 字符 (chr(7)). |
\A | 只匹配字符串的開(kāi)頭. |
\b | 代表單詞的開(kāi)頭或結(jié)尾, 也即單詞的分界處. 通常英文單詞由空格, 標(biāo)點(diǎn)符號(hào)或者換行分隔, 但 \b 并不匹配這些單詞分隔字符中的任何一個(gè), 它只是匹配一個(gè)位置 |
\B | 匹配不是單詞開(kāi)頭或結(jié)束的位置. |
\c | 匹配一個(gè)控制字符, 基于下一個(gè)字符. 例如: \cM 匹配 ctrl-M. |
\d | 匹配數(shù)字字符 (0-9). |
\D | 匹配非數(shù)字字符. |
\e | 匹配一個(gè)轉(zhuǎn)義字符 (chr(27)). |
\E | 結(jié)束實(shí)例修改. |
\f | 匹配一個(gè)換頁(yè)符 (chr(12)). |
\G | first matching position in subject. |
\h | 任何水平空白字符. |
\H | 任何不是水平空白字符的字符. |
\n | 匹配換行符 (@LF, chr(10)). |
\K | reset start of match. |
\N | a character that is not a newline |
\Q | 引用(禁用)模式元字符, 直到 \E. |
\r | 匹配一個(gè)回車符 (@CR, chr(13)). |
\R | a newline sequence. |
\s | 匹配任何的空白字符: Chr(9) 到 Chr(13) 包括: 水平制表符, 換行, 垂直列表符, 換頁(yè), 回車以及標(biāo)準(zhǔn)空格 ( Chr(32) ). |
\S | 匹配任何的非空白符的字符. |
\t | 匹配一個(gè)制表符 (chr(9)). |
\v | 匹配任何垂直空白字符. |
\V | 匹配不是垂直白字符的任何字符. |
\w | 匹配字母: a-z, A-Z; 或數(shù)字: 0-9; 或下劃線 (_); 或漢字等等 |
\W | 匹配任意不是字母, 數(shù)字, 下劃線, 漢字的字符. |
\ddd | 匹配八進(jìn)制字符代碼 ddd, 或如果成立則向后引用. 匹配之前給出確切的組號(hào). 例如 ([:alpha:])\1 將匹配一個(gè)連字. |
\xhh | 十六進(jìn)制字符代碼 hh. |
\x{hhh..} | 匹配十六進(jìn)制字符代碼 hhh.. |
\z | 只匹配字符串的末尾. |
\Z | 只匹配字符串的末尾, 或者換行之前. |
{x} | 重復(fù)前一個(gè)字符, 設(shè)置或組精確 x 次. |
{x,} | 重復(fù)前一個(gè)字符, 設(shè)置或組至少 x 次. |
{0,x} | 重復(fù)前一個(gè)字符, 設(shè)置或組最多 x 次. |
{x, y} | 重復(fù)前一個(gè)字符, 設(shè)置或組在 x 與 y 次之間, 包含 x, y. |
* | 重復(fù)前一個(gè)字符, 設(shè)置或組 0 或更多次. 等價(jià)于 {0,} |
+ | 重復(fù)前一個(gè)字符, 設(shè)置或組 1 或更多次. 等價(jià)于 {1,} |
? | 重復(fù)前一字符, 設(shè)置或組可能會(huì)或可能不會(huì)出現(xiàn). 等價(jià)于 {0, 1} |
? (重復(fù)字符后) | 查找最少的匹配而非最多的. |
[:alnum:] | 字母和數(shù)字 |
[:alpha:] | 字母 |
[:ascii:] | 字符代碼 0 - 127 |
[:blank:] | 空格或制表符 |
[:cntrl:] | 控制字符 |
[:digit:] | 十進(jìn)制數(shù)字 (相同于 \d) |
[:graph:] | 打印字符, 不包括空格 |
[:lower:] | 小寫字母 |
[:print:] | 打印字符, 包括空格 |
[:punct:] | 打印字符,不包括字母和數(shù)字 |
[:space:] | 空白空間 (不完全和 \s 相同, 它包括 VT: chr(11) ) |
[:upper:] | 大寫字母 |
[:word:] | "單詞" 字符 (相同于 \w) |
[:xdigit:] | 十六進(jìn)制數(shù) |
;
***********************************
; 以下為官方示例:
; ***********************************
;選項(xiàng) 1, 使用偏移量
Local $nOffset
= 1
Local $array
While 1
$array = StringRegExp('<test>a</test> <test>b</test>
<test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 1,
$nOffset)
If
@error =
0 Then
$nOffset = @extended
Else
ExitLoop
EndIf
For
$i = 0 To UBound($array) - 1
MsgBox(0, "正則表達(dá)式選項(xiàng) 1
測(cè)試 " & $i, $array[$i])
Next
WEnd
;選項(xiàng) 2, 單返回, php/preg_match() 樣式
$array =
StringRegExp('<test>a</test>
<test>b</test>
<test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 2)
For $i = 0 To
UBound($array) - 1
MsgBox(0, "正則表達(dá)式選項(xiàng) 2
測(cè)試 " & $i, $array[$i])
Next
;選項(xiàng) 3, 全程返回, 舊的 AutoIt 樣式
$array =
StringRegExp('<test>a</test>
<test>b</test>
<test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 3)
For $i = 0 To
UBound($array) - 1
MsgBox(0, "正則表達(dá)式選項(xiàng) 3
測(cè)試 " & $i, $array[$i])
Next
;選項(xiàng) 4, 全程返回, php/preg_match_all() 樣式
$array =
StringRegExp('F1oF2oF3o', '(F.o)*?', 4)
For $i = 0 To
UBound($array) - 1
Local
$match =
$array[$i]
For
$j = 0 To UBound($match) - 1
MsgBox(0, "正則表達(dá)式選項(xiàng) 4
測(cè)試 " & $i & ',' & $j, $match[$j])
Next
Next
provider with jb51.net (unicode) |