正規表現を使用してテキスト検索パラメータを表すことにより、時間の変更など、動的に変化する文字列の一致を巧みに完了できます。そこで、皆さんが正規表現をよりよく理解できるようにしたいと考えて、「ブール教育正規表現ビデオ チュートリアル」を集めました。
コース再生アドレス: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 サイトの他の関連記事を参照してください。