ホームページ  >  記事  >  バックエンド開発  >  ブール教育用正規表現ビデオ チュートリアル

ブール教育用正規表現ビデオ チュートリアル

黄舟
黄舟オリジナル
2017-08-30 09:36:021559ブラウズ

正規表現を使用してテキスト検索パラメータを表すことにより、時間の変更など、動的に変化する文字列の一致を巧みに完了できます。そこで、皆さんが正規表現をよりよく理解できるようにしたいと考えて、「ブール教育正規表現ビデオ チュートリアル」を集めました。


ブール教育用正規表現ビデオ チュートリアル


コース再生アドレス:http://www.php.cn/course/281.html


先生の教え方:

先生講義はシンプルかつ奥深く、構造が明確で、層ごとに分析され、連動しており、議論が厳密で、構造が厳密です。私たちは論理的思考力を使って生徒の注意を引き、理性を使って教室での指導をコントロールします。プロセス。教師の講義を聞くことで、生徒は知識を学ぶだけでなく思考訓練を受け、教師の厳しい学問的姿勢に影響を受けます。


このビデオのより難しい点は、貪欲と非貪欲です:

1. 正規表現の貪欲マッチングと非貪欲マッチングとは何ですか

例:

String str="abcaxc";
    Patter p="ab*c";

貪欲マッチング: 正規表現一般最大長マッチング (貪欲マッチングとも呼ばれます) が行われる傾向があります。たとえば、パターン p を使用して文字列 str と一致させると、結果は abcaxc(ab*c) になります。

貪欲でないマッチング: できるだけ少ない一致文字で結果をマッチングします。たとえば、パターン p を使用して文字列 str と一致させると、結果は abc(ab*c) となります。

2. プログラミングで 2 つのモードを区別する方法

デフォルトは量指定子の直後に疑問符を追加します。貪欲でないモードです。

数量子: {m,n}: mからn

*: 任意の数の

+: 1から複数の

? : 0 または 1 つ

3. プログラム例

Snort のルールを使用して、ルールの一部をコンテンツ部分と一致するテキストとして使用します。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularTest {
    
    public static void main(String[] arg){
        String text="(content:\"rcpt to root\";pcre:\"word\";)";
        String rule1="content:\".+\"";    //贪婪模式
        String rule2="content:\".+?\"";    //非贪婪模式
        
        System.out.println("文本:"+text);
        System.out.println("贪婪模式:"+rule1);
        Pattern p1 =Pattern.compile(rule1);
        Matcher m1 = p1.matcher(text);
        while(m1.find()){
            System.out.println("匹配结果:"+m1.group(0));
        }
        
        System.out.println("非贪婪模式:"+rule2);
        Pattern p2 =Pattern.compile(rule2);
        Matcher m2 = p2.matcher(text);
        while(m2.find()){
            System.out.println("匹配结果:"+m2.group(0));
        }
    }
}



ここで、ソース コード リソースをダウンロードすることもお勧めします: http://www.php.cn/xiazai/code/2132


以上がブール教育用正規表現ビデオ チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。