正規表現
正規表現(正規表現)が正規の期間情報を表すことができる文字列で、Pythonは正規表現モジュールが付属して、このモジュールは全体を検索することができ、定期的に情報交換した後、抽出されました。
プログラムの開発は、コンピュータを使用すると、テキストの大部分からテキストを見つけてみましょう、あなたが達成するために正規表現を使用する必要があります。正規表現を使用しました。次のステップ。1. 2.は、通常の表記法3.抽出情報の法則を検索します。
まず、正規表現の基本的なシンボル
1.ノーポイント。「」
点号:可以代表任何除了换行符(\n)以外 的字符
一个点代表一个字符
点号就事宜个占位符(和%s有异曲同工之处)
2.アスタリスク「*」
星号更有意思了,星号可以代表前面的一个子表达式0次到∞次
举个例子:xixihahahhahhaha -> xixi.* #xixi后面有12 个点 代表字符
xixiaaaaaaaaaaaa-> xixi.* # 代表前面的a
星号和点号都可以标识前面的字符,星号可以标识中间任意多个除了换行符意外的任意字符。
3.疑問符「?」
问号标识它前面的子表达式0次或者1次的。
注意:这里问号是英文问号。
バックスラッシュの後に、バックスラッシュ、そしてその背後にある文字の形、全体ので、「\ n」は代わりに2文字の文字として見られるべきです。
4.バックスラッシュ "\"
反斜杠在正则表达式里面不能单独使用,甚至在整个python里都不能单独使用。反斜杠需要和其他的字符配合使用来把特殊字符号变成普通符号。
常见的字符转义
エスケープ文字 | 意味 |
---|---|
\ nは | 改行 |
\トン | タブ |
\ | 通常のバックスラッシュ |
" | 単一引用符 |
" | 二重引用符 |
\ dは | デジタル |
5.デジタル "\ D"
バックスラッシュと文字Dが構成されますが使用「\ dは」正規表現は「\ d」を、単一の数字を表現するが、「\ d」は広く開い表現としてすべき
数値例を抽出するために:
↑↑参照するには、テキストをクリックしてください↑↑
6.括弧 "()"
括弧を使用する必要性上のテキストからコンテンツの一部を抽出します。
使用括弧の例:
↑↑参照するには、テキストをクリックしてください↑↑
第二に、パイソン蒋介石の正規表現の使用
python已经自带了一个功能强大的正则表达式模块,使用这个模式可以非常方便的通过正则表达式来从一段文字中提取有规律的信息。
python中正则表达式的模块是 re 在python中先导入模块,然后使用这个模块
import re
1.dfindall
findAll(パターン、文字列、フラグ= 0)
の文字列には見出さ戻すために一致する、左から右への一致の非繰り返しパターン、スキャン文字列のリストを返します。パターンは複数のグループに存在する場合、それは組み合わせのリストを返す。(それまでのスタイルの複数の組み合わせがある場合)タプルのリストです。空のマッチも結果に含まれます。
バージョン3.7での変更点:今すぐ前の空き缶の試合の後に空でない一致があります。
re.finditer(パターン、文字列、フラグ= 0)
すべての非反復列の試合の模様、反復子は、一致オブジェクトを保存するイテレータを返します。文字列のスキャンは、シーケンシャルに一致する、左から右へ。空のマッチも結果に含まれています。
2.search
re.search(パターン、文字列、フラグ= 0)は、
最初に一致したパターンと戻る対応一致するオブジェクトの位置を見つけるための文字列全体を走査します。長さゼロのマッチが異なっている見つけるために、これに注意を払うのと、一致がない場合は、Noneを返します
3. "" との違い。 "*?" で
「*。」:貪欲、最長の文字列を取得するための条件を満たしている
。「?」:非貪欲モード:文字列の最小条件満たすために取得
注:
??、+、??
「」、「+」 、および修飾子は貪欲です「?」;彼らは、文字列内の多くの試合のとおりです。時には、この動作は必要ありません。正規表現の場合は、<。 >希望「見つけるためにB」が、それはだけではなく、文字列全体にマッチします"。?修正後非貪欲にスタイルを追加します方式或者 :dfn:
最低限の試合、数文字が一致するように。正規表現を使用して<。*?>のみ「にマッチします」。
第三に、正規表現抽出技術
1. complieを必要としません
re.compile简介:
re.compile(pattern, flags=0)
将正则表达式的样式编译为一个 正则表达式对象 (正则对象),可以用于匹配,通过这个对象的方法 match(), search() 以及其他如下描述。
这个表达式的行为可以通过指定 标记 的值来改变。值可以是以下任意变量,可以通过位的OR操作来 结合( | 操作符)。
序列
prog = re.compile(pattern)
result = prog.match(string)
等价于
result = re.match(pattern, string)
如果需要多次使用这个正则表达式的话,使用 re.compile() 和保存这个正则对象以便复用,可以让程 序更加高效。
注解 :通过 re.compile() 编译后的样式,和模块级的函数会被缓存, 所以少数的正则表达式使用无需考虑编译的问题。
(re.compile)を使用する場合、内部呼び出しプログラムは_complime()メソッドであり、この方法は、その後のfindAllコール()メソッド)ときにモジュール内に自動的に最初のコール_compile(re.finallを使用しました。re.findallは()re.compile()関数で、re.compile()メソッドを使用する必要はありませんしています。
2.小型でキャッチ最初の大漁
ミックス一緒に有効および無効なコンテンツのコンテンツは、我々はあなたが別の大漁小さなヒントをキャッチするために使用する必要があり、この問題を解決する必要があり、有用な情報は、最初のマッチ全体で来たが、試合の人々の内側で有効なユーザー。まず、大小のアイデアは、開発プロセス全体爬虫類をつかむだろう。
3.内側ブラケットと外側のブラケット
私は他の一般的な文字があるブラケット、これらの通常の文字は、内部を得られた結果に表示されます。場合たとえば、「左と右の間」は、一般的に、トランクのこの部分を指し、「左と右、左と右の間に含まれ、」その後、全人の子供たちを指しは、括弧内に普通の文字を回します結果はそれらを含める必要性を示しています。
Pythonは付属のビデオリンクを説明します。
詳細Pythonの正規表現