phpと正則の使用
4538 ワード
正規表現はphpにおける非常に重要な知識点であり、文字列の検索と置換に一般的に使用され、メールフォーマット、電話フォーマットなど、ユーザーが入力した情報フォーマットが正しいかどうかを検証することが最も一般的です.また、コレクターなどのソフトでは、正則も必要です!これから正規表現の基本文法を勉強します:1."/"はデリミタであり、"/"デリミタの間の部分はターゲットオブジェクトで一致するモードである.また,正規化をより柔軟にするために,「+」,「*」,「?」というメタ文字を導入した.(1)「+」メタ文字は、その先頭文字がターゲットオブジェクトに1回以上連続して出現しなければならないことを規定する.例えば、/php+/、「phpp」と一致することができる.すなわち、アルファベットphの後ろに1つ以上のアルファベットpが連続して出現する文字列と一致する.(2)「*」メタ文字は、その先頭文字がターゲットオブジェクトに0回以上出現しなければならないことを規定する.例えば、/php*/phpddt一致する、すなわちphの後ろに0個以上のp(3)"?メタ文字は、そのプリアンブルがターゲットオブジェクトに0回または1回連続して表示される必要があることを示します.例えば:/php?/「pher」マッチングが可能です.すなわち、phhの後ろに0つまたは1つのpの他の重要なメタ文字があります.s:tabキーと改行を含む単一のスペース記号を一致させる. S:1つのスペース以外のすべての文字を一致させるために使用されます. d:0から9までの数字を一致させるために使用されます. w:アルファベット、数字、または下線文字を一致させるために使用されます. W:wと一致しないすべての文字を一致させるために使用されます. . :改行以外のすべての文字を一致させるために使用します.
例:/s+/ターゲットオブジェクトに一致する1つ以上のスペース文字2.ロケータは、ターゲットオブジェクトにおけるマッチングモードの出現位置を指定するために使用されます.よく使われるのは「^」、「$」です.「b」および「B」(1)「^」ロケータは、一致モードがターゲット文字列の先頭(2)「$」ロケータでなければならないことを規定する.一致モードがターゲットオブジェクトの末尾に現れることを規定する(3)bロケータは、一致モードがターゲット文字列の先頭または末尾の2つの境界の1つに現れることを規定する(4)「B」ロケータは、一致するオブジェクトがターゲット文字列の先頭と末尾の2つの境界内にある必要があることを規定する.phpの正規マッチングモードは非常に柔軟であり、例えば/[A-Z]/上記の正規表現がAからZまでの任意の大文字と一致する範囲を指定することができる./[a-z]/上記の正規表現は、aからzまでの任意の小文字と一致します./[0-9]/上記の正規表現は、0から9の範囲内の任意の数値と一致します./([za-][A-Z][0-9])+/上記の正規表現は、アルファベットと数字からなる任意の文字列4となる.例えば/phpddt.com|phpddt|100/「phpddt.com」「phpddt」「100」と一致することができる.否定符「[^]」は、ターゲットオブジェクトにモードで指定された文字列が存在しないことを規定します.例えば、[^phpddt]マッチングphpddt文字以外のすべてのものについて、正規表現の常用関数について説明しましょう.(非常に重要)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
例:/s+/ターゲットオブジェクトに一致する1つ以上のスペース文字2.ロケータは、ターゲットオブジェクトにおけるマッチングモードの出現位置を指定するために使用されます.よく使われるのは「^」、「$」です.「b」および「B」(1)「^」ロケータは、一致モードがターゲット文字列の先頭(2)「$」ロケータでなければならないことを規定する.一致モードがターゲットオブジェクトの末尾に現れることを規定する(3)bロケータは、一致モードがターゲット文字列の先頭または末尾の2つの境界の1つに現れることを規定する(4)「B」ロケータは、一致するオブジェクトがターゲット文字列の先頭と末尾の2つの境界内にある必要があることを規定する.phpの正規マッチングモードは非常に柔軟であり、例えば/[A-Z]/上記の正規表現がAからZまでの任意の大文字と一致する範囲を指定することができる./[a-z]/上記の正規表現は、aからzまでの任意の小文字と一致します./[0-9]/上記の正規表現は、0から9の範囲内の任意の数値と一致します./([za-][A-Z][0-9])+/上記の正規表現は、アルファベットと数字からなる任意の文字列4となる.例えば/phpddt.com|phpddt|100/「phpddt.com」「phpddt」「100」と一致することができる.否定符「[^]」は、ターゲットオブジェクトにモードで指定された文字列が存在しないことを規定します.例えば、[^phpddt]マッチングphpddt文字以外のすべてのものについて、正規表現の常用関数について説明しましょう.(非常に重要)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//preg_match(" "," ")
$email
=
"[email protected]"
;
if
(preg_match(
"/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/"
,
$email
)){
echo
'
'
;
}
else
{
echo
'
'
;
}
//preg_quote(" ") \
$str
=
"php php ,(⊙o⊙)…"
;
echo
preg_quote(
$str
);
echo
"
"
;
//preg_split(" "," ")
$php
=
"+php++ ++++ "
;
$field
= preg_split(
"/\+{1,}/"
,
$php
);
foreach
(
$field
as
$f
){
echo
$f
.
" "
;
}
echo
"
"
;
//preg_grep(" "," ")
$phpddt
=
array
(
"php "
,
"php100"
,
" "
,
"hahaha"
,
"phpchina"
);
$item
= preg_grep(
"/^php/"
,
$phpddt
);
print_r(
$item
);
echo
"
"
;
//preg_replace(" "," "," ") ,
$a
=
" http://www.jb51.net/"
; // http
echo
preg_replace(
"/http:\/\/(.*)\//"
,
"\${0}"
,
"$a"
);
?>