(同じ利用者による、間の8版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
 
正規表現とは、いくつかの文字列を1つの形式で表現するための表現方法のことである。<br>
では、なぜこの表現方法が有名なのかといえば、この表現方法を利用すれば、多くの文章の中から簡単に文字列を検索することができるためである。<br>
<br>
Windows10(Windows 10)、WINDOWS10(WINDOWS 10)、Windows7(Windows 7)、WINDOWS7(WINDOWS 7)という文字列を正規表現で検索する場合は、下記のようにする。<br>
W(indows|INDOWS) ?(10|7)
意味
(abc|xyz) : abcまたはxyzのいずれかの場合にマッチする
?        : 直前の文字が0個か1個の場合にマッチする
<br><br>
<br><br>


6行目: 14行目:
最長一致とは、最長文字列を優先して検索し、最短一致とは、最短文字列を優先して検索する。<br>
最長一致とは、最長文字列を優先して検索し、最短一致とは、最短文字列を優先して検索する。<br>
<center>
<center>
'''基本的な正規表現'''<br>
{| class="wikitable"
{| class="wikitable"
|+ 基本的な正規表現
|-
|-
! 文字 !! 説明 !! 正規表現の例 !! マッチする例
! 文字 !! 説明 !! 正規表現の例 !! マッチする例
25行目: 33行目:
| ?? || 直前の文字が0個か1個の場合にマッチする。<br>最短一致。条件に合う最短の部分に一致する。 || go??gle || ggle<br>gogle
| ?? || 直前の文字が0個か1個の場合にマッチする。<br>最短一致。条件に合う最短の部分に一致する。 || go??gle || ggle<br>gogle
|-
|-
| | || いずれかの条件(OR条件)として使う。 || goog(le|ol) || google<br>googol
| <nowiki>|</nowiki> || いずれかの条件(OR条件)として使う。 || <nowiki>goog(le|ol)</nowiki> || google<br>googol
|-
|-
| \ || 直後の正規表現記号をエスケープする。 || go\+gle || go+gle
| \ || 直後の正規表現記号をエスケープする。 || go\+gle || go+gle
46行目: 54行目:
<br>
<br>
<center>
<center>
'''定義済みの正規表現'''<br>
{| class="wikitable"
{| class="wikitable"
|+ 定義済みの正規表現
|-
|-
! 文字 !! 説明 !! 対応する表現
! 文字 !! 説明 !! 対応する表現
72行目: 80行目:
<br>
<br>
<center>
<center>
'''特定の位置関係の正規表現'''<br>
{| class="wikitable"
{| class="wikitable"
|+ 特定の位置関係の正規表現
|-
|-
! 文字 !! 説明 !! 正規表現の例 !! マッチする例
! 文字 !! 説明 !! 正規表現の例 !! マッチする例
81行目: 89行目:
| $ || 直前の文字が行の末尾にある場合にマッチする。 || google$ || ...google
| $ || 直前の文字が行の末尾にある場合にマッチする。 || google$ || ...google
|-
|-
| \< || 単語の先頭にマッチする。 || \< || *google
| \< || 単語の先頭にマッチする。 || \<google || google*
|-
|-
| \> || 単語の末尾にマッチする。 || \> || google*
| \> || 単語の末尾にマッチする。 || google\> || *google
|-
|-
| \b || 単語の先頭か末尾にマッチする。 || \b || *google*
| \b || 単語の先頭か末尾にマッチする。 || \b || *google*
98行目: 106行目:
<br>
<br>
<center>
<center>
'''置換文字列で使える正規表現'''<br>
{| class="wikitable"
{| class="wikitable"
|+ 置換文字列で使える正規表現
|-
|-
! 文字 !! 説明
! 文字 !! 説明
207行目: 215行目:
郵便番号<br>
郵便番号<br>
  ^\d{3}-\d{4}$
  ^\d{3}-\d{4}$
<br><br>
== 修飾子一覧 ==
大文字と小文字を区別しない。
/i
式の展開(正規表現のコンパイル)を一度だけ行う。
/o
パターンの空白やコメントを無視する。
/x
対象の文字列を複数行として扱う。.(ドット)が改行にもマッチする。
/m
繰り返しマッチを行う。
/g
置換を行った結果を式として処理する。
/e
<br><br>
<br><br>


== サンプルコード(Python) ==
== サンプルコード(Python) ==
  <source lang="python">
  <syntaxhighlight lang="python">
  #!/usr/bin/env python
  #!/usr/bin/env python
   
   
219行目: 242行目:
  is_email = re.match(reg, email) is not None
  is_email = re.match(reg, email) is not None
  print(isEmail);
  print(isEmail);
  </source>
  </syntaxhighlight>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:その他]]
[[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:MFC]][[カテゴリ:Qt]][[カテゴリ:C_Sharp]][[カテゴリ:Rust]][[カテゴリ:Python]][[カテゴリ:シェルスクリプト]][[カテゴリ:その他]]