收集了一份php正则表达式的实例教程,真心不错,记录下。
正则表达式用于字符串处理、表单验证等场合,实用高效。
一些常用的表达式:
$str = preg_replace("/(
其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是
然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?
获取页面中的所有链接地址的PHP函数
参考链接:
下面这个用PHP写的函数,可以获取任意的字符串$string中的所有链接地址($string可以是从一个HTML页面文件直接读取出来的字符串),结果保存在一个数组中返回.该函数自动把电子邮件地址排除在外,而且返回的数组中不会有重复元素.
function GetAllLink($string)
{
$string = str_replace("\r","",$string);
$string = str_replace("\n","",$string);
$regex[url] = "((http|https|ftp|telnet|news):\/\/)?([a-z0-9_\-\/\.]+\.[][a-z0-9:;@=_~%\?\/\.\,\+\-]+)";
$regex[email] = "([a-z0-9_\-]+)@([a-z0-9_\-]+\.[a-z0-9\-\._\-]+)";
//去掉标签之间的文字
$string = eregi_replace(">[^<>]+<","><", $string);
//去掉JAVASCRIPT代码
$string = eregi_replace("","", $string);
//去掉非的HTML标签
$string = eregi_replace("<[^a][^<>]*>","", $string);
//去掉EMAIL链接
$string = eregi_replace("]*>","", $string);
//替换需要的网页链接
$string = eregi_replace("]*>","\\3\t", $string);
$output[0] = strtok($string, "\t");
while(($temp = strtok("\t")))
{
if($temp && !in_array($temp, $output))
$output[++$i] = $temp;
}
return $output;
}
以下是以PHP的语法所写的示例
验证字符串是否只含数字与英文,字符串长度并在4~16个字符之间
$str = 'a1234';
if (preg_match("^[a-zA-Z0-9]{4,16}$", $str)) {
echo "验证成功";} else {
echo "验证失敗";}?>
简易的台湾身分证字号验证
$str = 'a1234';
if (preg_match("^(?:\d{15}|\d{18})$", $str)) {
echo "验证成功";
} else {
echo "验证失敗";}
?>
下面的代码实现文字中的代码块,功能就如你在脚本学堂看到的代码一样。
function codedisp($code) {
global $discuzcodes;
$discuzcodes['pcodecount']++;
$code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
$discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "
中国語文字の一致の正規表現: [u4e00-u9fa5]
コメント: 中国語の一致は本当に頭痛の種です。この表現を使用すると、簡単に処理できます。
全角文字の一致 (漢字を含む): [^ x00-xff]
コメント: 文字列の長さの計算に使用できます (全角文字は 2 としてカウントされ、ASCII 文字は 1 としてカウントされます)
空白行と一致するための正規表現: ns*r
コメント: 使用できます空白行を削除するには
HTML タグに一致する正規表現: <(S*?)[^>]*>.*?1>|<.*?
コメント: で流通しているバージョンインターネットはあまりにもおっと、上記はその一部のみと一致するだけで、最初と最後の空白文字を一致させる正規表現はまだ何もできません: ^s*|s*$
コメント:行の先頭と末尾の空白文字 (スペース、タブ、フォーム フィードなどを含む) を削除するために使用できます。非常に便利な式です。
メール アドレスを一致させるための正規表現: w+([-+.]w+)* @w+([-.]w+)*.w+ ([-.]w+)*
コメント: フォームの検証に非常に役立ちます
URL に一致するための正規表現: [a-zA-z]+://[^s] *
コメント: インターネット上で流通しているバージョンは非常に優れた機能を備えていますが、制限されていますが、上記は基本的にニーズを満たすことができます
アカウントが合法であるかどうかを照合します (文字で始まり、5 ~ 16 バイトが許可され、英数字のアンダースコアが許可されます): ^ [a-zA-Z][a-zA-Z0-9_]{4, 15}$
コメント: フォーム検証に非常に実用的
国内電話番号の一致: d{3}-d{8}|d{4} -d{7}
コメント: 0511-4405222 や 021-87888822 などの一致する形式
一致する Tencent QQ 番号: [1-9][0-9]{4,}
コメント: Tencent QQ 番号は 10000 から始まります
一致中国の郵便番号: [1-9]d{5}(?!d)
コメント: 中国の郵便番号は 6 桁です
一致する ID カード: d{15}|d{18}
コメント: 中国の ID カードは 15 または18 桁
一致する IP アドレス: d+.d+.d+.d+
コメント: IP アドレスを抽出するときに役立ちます
(Script Academy www.jbxue.com によって編集) 特定の数字を一致させます:
^[1-9]d*$ //正の整数に一致
^-[1-9]d*$ // 負の整数に一致
^-?[1-9]d*$ // 整数に一致
^[1-9]d*|0$ // 一致負でない整数 (正の整数 + 0)
^-[1-9] d*|0$ // 正でない整数 (負の整数 + 0) と一致します
^[1-9]d*.d*|0 .d*[1-9]d*$ // 正の浮動小数点数と一致します
^ -([1-9]d*.d*|0.d*[1-9]d*)$ // 負の値と一致します浮動小数点数
^-?([1-9]d*.d*|0. d*[1-9]d*|0?.0+|0)$ //浮動小数点数と一致
^[1 -9]d*.d*|0.d*[1-9]d*|0 ?.0+|0$ // 負でない浮動小数点数 (正の浮動小数点数 + 0) と一致します
^(- ([1-9]d*.d*|0.d*[1-9]d*)) |0?.0+|0$ // 正でない浮動小数点数と一致します (負の浮動小数点数 + 0) )
コメント: 大量のデータを処理する場合に便利です。特定のアプリケーションでの修正に注意してください
特定の文字列に一致:
^[A-Za- z]+$ //26 個の英字で構成される文字列に一致します
^[A-Z] ]+$ //英大文字26文字からなる文字列と一致
^[a-z]+$ //英大文字26文字からなる文字列と一致
^[A-Za-z0-9]+$ / / 数字と 26 個の英字で構成される文字列と一致します
^w+$ // 数字、26 個の英字で構成される文字列、またはアンダースコアで構成される文字列と一致します
正規表現の特殊文字: (学習参考書-<<正規表現をマスターする>>)
文字
意味: 文字の場合、通常は文字通りの意味を意味し、次の文字が特殊文字であることを示します。 、説明はありません。
例: /b/ は文字「b」に一致します。b の前にバックスラッシュを追加すると、つまり /b/ となり、その文字は特殊文字になり、
が単語の分割線に一致することを示します。
または:
いくつかの文字については、通常、それらが特別であると述べられ、次の文字が特別ではなく、文字通りに解釈されるべきであることを示します。
例: * は特殊文字で、任意の数の文字 (0 文字を含む) に一致します。たとえば、/a*/ は 0 個以上の a に一致することを意味します。
リテラル * に一致するには、a の前にバックスラッシュを追加します。たとえば、/a*/ は 'a*' に一致します。
意味: 一致する文字が先頭になければならないことを示します。
例: /^A/ は、「an A」の「A」とは一致しませんが、「An A.」の最初の「A」と一致します。
意味: ^ と同様に、最後の文字と一致します。
例: /t$/ は、「eater」の「t」とは一致しませんが、「eat」の「t」とは一致します。
意味: * より前の文字と 0 回または n 回一致します。
例: /bo*/ は、「A ghost booooed」の「boooo」または「A Bird warbled」の「b」に一致しますが、「A goat g
runted」の文字には一致しません。
意味: + 記号の前の文字と 1 回または n 回一致します。 {1,} と同等。
例: /a+/ は、「candy」の「a」と「caaaaaaandy」のすべての「a」に一致します。
意味: ? より前の文字と一致します。
例: /e?le?/ は、「angel」の「el」と「angle.」の「le」に一致します。
文字。
意味: (小数点) は改行文字を除くすべての単一文字に一致します。
例: /.n/ は、「いいえ、リンゴが木の上にあります」の 'an' と 'on' には一致しますが、'nay' には一致しません。
文字 (x)
意味: 'x' と一致し、一致した値を記録します。
例: /(foo)/ は、「foo bar」の「foo」と一致し、記録します。一致する部分文字列は、結果配列の要素 [1]、...、[n] によって、または RegExp オブジェクトのプロパティ $1、...、$9 によって返されます。
意味: 'x' または 'y' と一致します。
例: /green|red/ は、「green apple」の「green」と「red apple」の「red」に一致します。
意味: ここでの n は正の整数です。最初の n 文字と一致します。
例: /a{2}/ は、「candy」の「a」とは一致しませんが、「caandy」のすべての「a」と、「caaandy.」の最初の 2 つの
'a には一致します。
意味: ここでの n は正の整数です。少なくとも n 個前の文字と一致します。
例: /a{2,} は、「candy」の「a」には一致しませんが、「caandy」のすべての「a」と「caaaaaaandy」のすべての「a」に一致します。
文字 {n,m}
例: /a{1,3}/ は、「cndy」のどの文字とも一致しませんが、「candy,」の「a」、「caandy,」の最初の 2 つの「a」と「caaaaaaaandy」には一致します。最初の 3 つの「a」に注意してください。「caaaaaandy」に多くの「a」がある場合でも、最初の 3 つの「a」、つまり「aaa」にのみ一致します。
Character [xyz]
意味: リスト内の任意の文字と一致する文字のリスト。ハイフン - を使用して文字の範囲を指定できます。
例: [abcd] は [a-c] と同じです。これらは、「brisket」の「b」と「ache」の「c」に一致します。
Character[^xyz]
意味: 1 文字の補数。つまり、リストされた文字を除くすべてに一致します。 ハイフンを使用して、
文字の範囲を示すことができます。
文字
意味: スペースに一致します (b と混同しないでください)
意味: スペースなどの単語の分割線と一致します (混同しないでください)
例: /bnw/ は「noonday」の「no」に一致し、/wyb/ は「ly in」に一致します「もしかしたら昨日かもしれない。」
文字 B
意味: 単語の非改行行と一致します。
例: /wBn/ は「正午」の「on」と一致し、/yBw/ は「おそらく昨日」の「ye」と一致します。
Character cX
意味: ここの X は制御文字です。制御文字の文字列と一致します。
例: /cM/ は文字列内の control-M と一致します。
文字 d
意味: [0-9] に相当する数値と一致します。
例: /d/ または /[0-9]/ は、「B2 はスイート番号です」の「2」と一致します。
文字 D
意味: [^0-9] に相当する任意の非数値と一致します。
例: /D/ または /[^0-9]/ は、「B2 はスイート番号です。」の「B」と一致します。
文字 f
意味: 形式文字と一致します
意味: 改行文字と一致します
意味: 復帰文字と一致します
意味: [fnrtv] と同等の、スペース、タブ、フォーム フィード、改行文字を含む単一の空白文字と一致します。
例: /sw*/ は、「foo bar.」の「bar」と一致します。
文字 S
意味: [^ fnrtv] に相当する、空白を除く 1 つの文字と一致します。
例: /S/w* は、「foo bar.」の「foo」に一致します。
文字 t
意味: タブ文字と一致します
意味: 先頭のタブ文字と一致します
意味: [A-Za-z0-9_] に相当する、すべての数字、文字、アンダースコアと一致します。
例: /w/ は、「apple,」の「a」、「$5.28」の「5」、「3D.」の「3」に一致します。
文字 W
意味: [^A-Za-z0-9_] に相当する、数字、文字、アンダースコアを除く他の文字と一致します。
例: /W/ または /[^$A-Za-z0-9_]/ は、「50%.」の '%' に一致します。
文字 n
意味: ここでの n は正の整数です。正規表現の最後の部分文字列に一致する n の値 (左括弧をカウントします)。
。
注: 左括弧内の数値が n で指定された数値より小さい場合、n は次の行の 8 進エスケープを説明として受け取ります。
文字 oooctal と xhex
意味: ここでの oooctal は 8 進数のエスケープ値、xhex は 16 進数のエスケープ値で、ASCII コードを正規表現に埋め込むことができます。
区切り文字、通常は区切り文字の最初と最後に「/」を使用しますが、「#」も使用できます。
「/」区切り文字を使用したコードは次のとおりです
$regex = '/^http://([w.]+)/([w]+)/([w]+) .html$/i';$matches[0] には、パターン全体に一致する文字列が含まれます。
「#」区切り文字を使用したコードは以下の通りです
$regex = '#^http://([w.]+)/([w]+)/ ( [w]+).html$#i';
$str = 'http://www.jbxue.com/show_page/id_ABCDEFG.html';
$matches = array(); , $str, $matches)){
var_dump($matches)
}
echo "n";
修飾子: 正規表現の動作を変更するために使用されます。
コード:
$regex = '/HELLO/';
$str = 'hello word';
if(preg_match($str, $matches)){
echo 'いいえi:有効成功!',"n";
}
if(preg_match($regex.'i', $str, $matches)){
echo 'YES i:有効成功!',"n";
文字フィールド: [w] 角括弧で展開された部分が文字フィールドです。
修飾子: [w]{3,5}、[w]*、または [w]+ など、[w] の後の記号はすべて修飾子を表します。具体的な意味をご紹介します。
{3,5} は 3 ~ 5 文字を意味します。 {3,} は 3 文字を超え、{,5} は最大 5 文字、{3} は 3 文字です。
* は 0 以上を意味します。
+ は 1 以上を意味します。
Caret
^: 文字フィールド ([^w] など) に配置される
> は否定 (含めないことを意味します) を意味します - 式の前に配置される
> は現在の 1 文字が始まることを意味します。 (/^n/i、n で始まることを意味します)。
「」は「エスケープ文字」と呼ばれることが多いことに注意してください。 「.」、「/」などの一部の特殊記号をエスケープするために使用されます
区切り文字: 正規表現の形式は通常次のとおりです:
/love/
「/」区切り文字の間の部分がターゲットに含まれます。 object 一致するパターン。
メタキャラクター: 正規表現で特別な意味を持つ特殊文字を指し、ターゲット オブジェクト内の先頭の文字 (つまり、メタキャラクターの前の文字) の出現パターンを指定するために使用できます。
より一般的に使用されるメタ文字には、「+」、「*」、「?」などがあります。
「+」メタ文字は、その先頭文字がターゲット オブジェクト内で 1 回以上出現する必要があることを指定します。
「*」メタ文字は、その先頭文字がターゲット オブジェクト内で 0 回または連続して複数回出現する必要があることを指定します。 " メタキャラクター 先頭の文字がターゲット オブジェクト内に 0 回または 1 回出現する必要があることを指定します。
それでは、正規表現メタキャラクターの具体的な用途を見てみましょう。
/fo+/
上記の正規表現には「+」メタキャラクター(その前の「o」が先頭文字)が含まれているため、「fool」や「fo」などと連続して出現する可能性があることを意味します。文字 f の後のターゲット オブジェクト 1 つ以上の文字 o の文字列と一致します。
メタキャラクターに加えて、ユーザーは一致したオブジェクトにパターンが出現する頻度を正確に指定できます。たとえば、
/jim{2,6}/
上記の正規表現は、文字 m が一致するオブジェクト内に 2 ~ 6 回連続して出現できることを規定しているため、上記の正規表現は jimmy や jimmmmy などの文字列と一致します。 。
その他の重要なメタキャラクターの使用方法。
s: タブ キーと改行文字を含む単一のスペース文字の一致に使用されます。
d: 0 から 9 までの数字の一致に使用されます。文字、数字、またはアンダースコア文字を照合します。
W: w に一致しないすべての文字を照合するために使用します。
.: 改行文字を除くすべての文字を照合するために使用します。
(注: s と S、w と W は相互の逆演算と考えることができます)
ここで、例を通して正規表現で上記のメタキャラクターを使用する方法を見てみましょう。
/s+/
上記の正規表現は、ターゲット オブジェクト内の 1 つ以上のスペース文字と一致するために使用できます。
上で紹介したメタキャラクターに加えて、正規表現にはロケーターという別の固有の特殊文字もあります。
ロケーター: ターゲット オブジェクト内で一致するパターンが表示される場所を指定するために使用されます。
より一般的に使用されるロケーターには、「^」、「$」、「b」、「B」などがあります。
「^」ロケーターは、一致するパターンがターゲット文字列の先頭に出現する必要があることを指定します
「$」ロケーターは、一致するパターンがターゲット オブジェクトの末尾に出現する必要があることを指定します
b ロケーターは、一致するパターンがターゲット文字列の先頭に出現する必要があることを指定しますターゲット文字列の先頭または末尾に表示されます 2 つの境界の 1 つ
"B" ロケーターは、一致するオブジェクトがターゲット文字列の先頭と末尾の 2 つの境界内に位置する必要があることを規定します。つまり、一致するオブジェクトは、ターゲット文字列の先頭または末尾として使用されます。同様に、「^」と「$」、「b」と「B」も、互いに逆演算である 2 セットのロケーターとみなすことができます。例:
/^hell/
上記の正規表現には「^」ロケーターが含まれているため、ターゲット オブジェクト内の「hell」、「hello」、または「hellhound」で始まる文字列と一致します。
/ar$/
上記の正規表現には「$」ロケーターが含まれているため、ターゲット オブジェクト内の「car」、「bar」、または「ar」で終わる文字列と一致します。
/bbom/
上記の正規表現パターンは「b」ロケーターで始まるため、ターゲット オブジェクト内の「bomb」または「bom」で始まる文字列と一致します。
/manb/
上記の正規表現パターンは「b」ロケーターで終わるため、ターゲット オブジェクト内の「human」、「women」、「man」で終わる文字列と一致します。
ユーザーがより柔軟に照合パターンを設定できるようにするために、正規表現を使用すると、ユーザーは特定の文字に限定されず、照合パターン内の特定の範囲を指定できます。例:
/[A-Z]/
上記の正規表現は、A から Z までの範囲内の任意の大文字と一致します。
/[a-z]/
上記の正規表現は、a から z までの範囲内の任意の小文字と一致します。
/[0-9]/
上記の正規表現は、0 から 9 までの任意の数値と一致します。
/([a-z][A-Z][0-9])+/
上記の正規表現は、「aB0」などの文字と数字で構成される任意の文字列と一致します。ここでユーザーが注意する必要があるのは、正規表現で「()」を使用して文字列を結合できることです。
「()」記号: 含まれるコンテンツはターゲット オブジェクトに同時に出現する必要があります。したがって、「abc」の最後の文字は数字ではなく文字であるため、上記の正規表現は「abc」などの文字列とは一致しません。
プログラミング ロジックの「OR」演算に似た正規表現を実装し、複数の異なるパターンのいずれかを選択して一致させる場合は、パイプ文字「|」を使用できます。例:
/to|too|2/
上記の正規表現は、ターゲット オブジェクトの「to」、「too」、または「2」に一致します。
否定文字:「[^]」。先ほど紹介したロケーター「^」とは異なり、否定文字「[^]」は、パターンで指定された文字列が対象オブジェクト内に存在できないことを指定します。例:
/[^A-C]/
上記の文字列は、ターゲット オブジェクト内の A、B、および C を除く任意の文字と一致します。一般に、「^」が「[]」の中にある場合は負の演算子とみなされ、「^」が「[]」の外にある場合、または「[]」がない場合は負の演算子とみなされます。オペレーター。
最後に、ユーザーが正規表現パターンにメタキャラクターを追加して、一致するオブジェクトを見つける必要がある場合は、
エスケープ文字「」を使用できます。例:
/Th*/
上記の正規表現は、ターゲット オブジェクトの「The」ではなく「Th*」と一致します。
実践的な体験の紹介
^ と $ についてはまだ話さなければなりません。これらはそれぞれ文字列の先頭と末尾を一致させるために使用されます。
"^The": 文字列には "The" が必要です。先頭;
"of speech" $": 最後に "of Peace" を含む文字列が必要です。
次に、
"^abc$": abc で始まり abc で終わる文字列が必要です。 abc が一致します。
"notice": Notice を含む文字列と一致します。
前述の 2 つの文字 (最後の例) を使用しない場合、パターン (正規表現) が文字列内のどこにでも出現する可能性があることがわかります。テスト済みで、側面にロックを使用しないでください。
次に、「*」「+」と「?」について説明します。
これらは、文字の出現数または順序を示すために使用されます。
「0 個以上」は、{0,} に相当します。 "1 つ以上の "{1,} と同等
"0 または 1 と同等。" 、その後に 0 または N b からなる文字列 ("a"、"ab"、"abbb" など)
"ab+": ab{1,} と同義、上記と同じ;ただし、少なくとも 1 つの b が存在する必要があります ("ab" "abbb" など)。
"ab?": ab{0,1} と同義で、b は存在しないか、1 つだけ存在します。 $": 1 つまたは 0 の a に一致し、b で終わる 1 つ以上の文字列を追加します。
ポイント: 「*」「+」および「?」はその前の文字のみを考慮します。
中括弧内に表示される文字の数を制限することもできます。例:
"ab{2}": a の後には 2 つの b (それ以上) が必要です ("abb"); 2,}": a の後には 2 つ以上の b が続く必要があります (「abb」「abbbb」など);
"ab{3,5}": a の後に続けられることが必要です2-5 b( "abbb"、"abbbb"、または "abbbb") によって。
次に、特定の文字を括弧で囲みます。例:
"a(bc)*": a の後に 0 または 1 つの "bc" が続くものと一致します。
"a(bc){1,5}": 1 から 5 の "bc" ";
OR 演算に相当する文字 '|' もあります:
"hi|hello": "hi" または "hello" を含む文字列と一致します。
"(b|cd)ef ": a と一致します。 "bef" または "cdef" を含む文字列
"(a|b)*c": 複数の (0 を含む) a または b とそれに続く c を含む文字列と一致します。
ドット ('.') はすべて 1 つを表します。 " " を除く文字
" " を含むすべての単一文字と一致させたい場合はどうすればよいですか?
「[ .]」パターンを使用します。
"a.[0-9]": a と a 文字と 0 から 9 までの数字;
"^.{3}$": 3 つの任意の文字で終わります。
角括弧で囲まれた内容は 1 つの文字のみに一致します
"[ab]": 1 つの a または b ("a│b" と同じ) に一致します。"[a-d]": 'a' から 'd' までの 1 文字に一致します ("a│b│c│d" および "[abcd]" と同じ効果)
一般的には [a-zA-Z ] を使用します。英語の大文字と小文字で文字を指定するには:
“^[a-zA-Z]”: 大文字と小文字で始まる文字列に一致します。
“[0-9]%”: x% String の形式を含む文字に一致します。
“,[a-zA-Z0-9]$”: カンマと数字または文字で終わる文字列と一致します。
括弧内に入れたくない文字をリストすることもできます。「^」を使用するだけです。中かっこの先頭にある「%[^a-zA-Z]%」は、内部に文字以外を含む 2 つのパーセント記号を含む文字列と一致します。
ポイント: 角括弧の先頭に ^ を使用すると、角括弧内の文字を除外することを意味します。
PHP がこれを解釈するには、これらの文字の前後に "" を追加し、一部の文字をエスケープする必要があります。
角括弧内の文字は、この規則の例外であることを忘れないでください。角括弧内のすべての特殊文字は次のとおりです。 (") は、特別なプロパティを失います。「[*+?{}.]」は、次の文字を含む文字列に一致します。
また、regx マニュアルに記載されているように、「リストに ']' が含まれている場合、最後のものが最適です。リストの最初の文字 (おそらく '^' の後ろ) として使用するには、'-' を含む場合は、範囲の先頭または最後
に置くか、または 2 番目の終点に置くのが最善です。 [a-d-0-9] の真ん中の '-' が有効になります。
上記の例を読んだ後、n と m は負の整数にすることができないことに注意してください。この方法では、少なくとも n 回、最大で m 回一致します。たとえば、「p{1,5}」は
「pvpppppp」の最初の 5 つの p と一致します。
b で始まる本について 単語の境界を一致させるために使用されると言われています。つまり...たとえば、「veb」は ve in love には一致しますが、ve in Very には一致しません
B は上記の b の逆です
正規表現のその他の使用方法
文字列の抽出
ereg() と eregi() には、正規表現を使用して文字列の一部を抽出できる機能があります (具体的な使用法についてはマニュアルを参照してください)。パス/URL からファイル名を抽出します。次のコードが必要です。
ereg(”([^/]*)$”, $pathOrUrl, $regs);
echo $regs[1];高度な置換
ereg_replace() と eregi_replace() も非常に便利です。 はい、区切られた負符号をすべてカンマで置き換えたい場合:
ereg_replace("[ t]+", ",", trim($str));
preg_match() および preg_match_all()
preg_quote()
preg_split()
preg_grep()
preg_replace()
関数の具体的な使用法については、PHP マニュアルを参照してください。ここでは、私たちが蓄積した正規表現をいくつか紹介します。
アクション属性の一致
$str = '';
正規表現でコールバック関数を使用する
/**
* コールバック関数で一部の文字列を置換します
*
*/
$url = 'http://esfang.house.sina.com.cn';
$str = ''; (?<=saction=")(?!http:)(.*?)(?="s)/e', 'search($url, 1)', $str );関数検索($url, $match){
$url . $match;
アサーションによる通常のマッチング
$match = '';
$str = 'xxxxxx.com.cn 太字フォント
段落テキスト
';
preg_match_all ( '/(?<=<(w{1})> ; ).*(?=1>)/', $str, $match );
echo "属性を持たない HTML タグの内容と一致します:";
HTMLソースコード内のアドレスを置き換えます
$form_html = preg_replace ( '/(?<=saction="|ssrc="|shref=")(?!http:|javascript)(.*?)(?= "s )/e'、'add_url($url, '1')'、$form_html );
メタキャラクター
メタキャラクターの説明
は、改行文字以外のものと一致します。
w は、文字または数字と一致します。またはアンダースコア
s は任意の空白に一致します
d は数字に一致します
b は単語の先頭または末尾に一致します
^ 文字列の先頭に一致します
$ は文字列の末尾に一致します
W の反対。文字、数字、アンダースコア、および中国語以外の文字に一致します。
S の反対。空白以外の文字に一致します。 d の反対で、数字以外の文字に一致します
[^x] は、x 以外の任意の文字に一致します ([^abc] など)。abc 以外に一致します。数文字を超える文字
には、いくつかの PHP 正規表現の例が必要です
参考のみ: O(∩_∩)O~
1./\bKevin\b Chang\b/
2./.{6,}/
3./.{1,6}/ 少なくとも 1 バイト ,最大 6 バイト
4./^[a-z][0-9]*$/i //^&
5 の完全一致に注意してください。/\w+([-+.]\w+)*@\w+ ( [-.]\w+)*\.\w+([-.]\w+)*/
コードは次のとおりです:
$str=file_get_contents('abc.com/aaa.php');
if (preg_match('||', $str, $reg)) $out=$reg[1];
else $out='';
echo "$out
\ん";
?>