1. ホーム
  2. Web プログラミング
  3. 正規表現

golangの正規表現の解析

2022-01-18 09:24:20

Go(ゴーラングとも呼ばれる)は、GoogleのRobert Griesemer、Rob Pike、Ken Thompsonによって開発された静的強型付けコンパイル言語で、C言語に似た構文を持ち、メモリセーフ、GC(ガベージコレクション)、構造形態素、CSPスタイルの並列計算などの機能を備えています。

Robert Griesemer、Rob Pike、Ken Thompsonは2007年9月にGoの設計を開始し、後にIan Lance TaylorとRuss Coxが加わりました。Goは2009年11月にオープンソースプロジェクトとして正式に発表され、LinuxとMac OS Xプラットフォームで実装され、後にWindows向けの実装も追加されました。2016年には、ソフトウェア評価会社TIOBEによる「TIOBE's Best Language of 2016」にGoが選出されました。現在、Goは半年ごとにセカンドレベルバージョン(a.xからa.yへのバージョンアップ)としてリリースされています。

ここでは、golangの正規表現を紹介します。

1 数字。^[0-9]*$
2つのn桁の数字 ^d{n}$
3 少なくともn桁の数字を持つ数字 ^d{n,}$
4 m-n桁の数字を持つ数字。^d{m,n}$
5 0から始まる数字と0でない数字。^(0|[1-9][0-9]*)$
6 非ゼロで始まる小数点以下2桁までの数字。^([1-9][0-9]*)+(. [0-9]{1,2})? $
7 小数点以下1~2桁の正または負の数。^(\-)? \Ȃd+(Ȃ. Ȃd{1,2})? {{br
8 正数、負数、10進数。^(\-|\+)? \♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪~
9 小数点以下2桁の正の実数。^[0-9]+(. [0-9]{2})? $
10 小数点以下1~3の正の実数。^[0-9]+(. [0-9]{1,3})? $
11 ゼロでない正の整数。1-9]\d*$ または ^([1-9][0-9]*){1,3}$ または ^Centa+? [1-9][0-9]*$
12 ゼロでない負の整数。^-[1-9][]0-9"*$ or ^-[1-9]\d*$.
13 非負の整数を表す。または ^[1-9]\d*|0$ 。
 14 非正整数 ^-[1-9]\d*|0$ または ^((-d+)|(0+))$)
15 非負の浮動小数点数。or ^[1-9]\d*
16 非正の浮動小数点数。非正規浮動小数点数:^((-d+(┣┣┣)? |(0+(\.0+)?)) $ or ^(-([1-9]\d*|0.\d*[1-9]\d*))|0?\.0+|0$)
17 正の浮動小数点数。^[1-9]\d*\. \d*|0\. \d*[1-9]\d*$ or ^([0-9]+THERE. [0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*. [0-9]+)|([0-9]*[1-9][0-9]*)))$
18 負の浮動小数点数。^-([1-9]\d*|0.\d*[1-9]\d*)$ or ^(-([0-9]+[1-9][0-9]*)|([0-9]*[1-9][0-9]*). [0-9]+)|([0-9]*[1-9][0-9]*)))$ (負数の浮動小数点数)
19 浮動小数点数です。または ^-? ([1-9]\d*|0.\d*[1-9]\d*|0?\.0+|0)$.

II. チェック文字の表現

1 漢字。^[\u4e00-\u9fa5]{0,}$
2 英語と数字。A-Za-z0-9]+$ または ^[A-Za-z0-9]{4,40}$ となります。
3 長さ3~20のすべての文字。^. {3,20}$
4 26文字で構成される文字列。^[A-Za-z]+$ の26文字からなる文字列。
5 26文字の大文字の文字列。^[A-Z]+$
6 26文字の小文字の文字列。^[a-z]+$
7 数字と26文字で構成される文字列。^[A-Za-z0-9]+$ となります。
8 数字、26文字またはアンダースコアからなる文字列。^w+$ または ^w{3,20}$ とする。
 9 中国語、英語、アンダースコアを含む数字。^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中国語、英語、数字、ただしアンダースコアやその他の記号は不可。^[\u4E00-\u9FA5A-Za-z0-9]+$ or ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 ^%&',;=? を含む文字が入力できます。$" などを含む文字が入力できます。[^%&',;=? $entax22]+ 12 ~を含む文字の入力は禁止されています。[^~\x22]+

III. 特別な要件表現

1 電子メールアドレス。^w+([-+.] \w+)*@ttp:/file.html? \w+([-.] \w+)*$.
2 ドメイン名: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/. [a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/..?
3 InternetURL。[a-zA-z]+://[^s]* or ^http://([\w-]+.) +[\w-]+(/[\w-. /? %&=]*)? $.
4 携帯電話の番号です。^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
5 電話番号(「XXX-XXXXXX」、「XXXX-XXXXXX」、「XXX-XXXXXX」、「XXX-XXXXXX」、「XXXXXX」、「XXXXXX」)。^(\(\d{3,4}-)|\d{3.4}-)? \d{7,8}$
6 国内電話番号(0511-4405222, 021-878822)。\d{3}-\d{8}|\d{4}-\d{7}
7 ID番号(15桁、18桁)。^d{15}|d{18}$.
8 ショートID番号(数字、末尾にxがつく)。^([0-9]){7,18}(x|X)? $ または ^d{8,18}|[0-9x]{8,18}? $
 9 口座番号は適法か(文字で始まる、5~16バイト可、英数字のアンダースコア可)。^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 パスワード(文字で始まり、6~18の長さで、文字、数字、アンダースコアのみを含むことができます)。^[a-zA-Z]\w{5,17}$ です。
11 強力なパスワード(大文字と小文字、数字の組み合わせが必要、特殊文字は使用不可、長さは8から10まで)。^(? =. *d)(? =. *[a-z])(? =. *[A-Z]). {8,10}$
12 日付の書式。^\d{4}-\d{1,2}-\d{1,2}
13 1年の12ヶ月(01-09と1-12)。^(0?[1-9]|1[0-2])$
14 月の31日(01~09、1~31)。^((0?[1-9])|((1|2)[0-9])|30|31)$
15 お金の入力形式です。
16 1.受け付けられるお金の表現は4つあります。"1万円 "と "1万円"、そして "1万 "と "1万 "から "セント "を除いたものです。^[1-9][0-9]*$
 17 2.0から始まらない数字という意味ですが、「0」という文字も通らないので、次のような形にします。^(0|[1-9][0-9]*)$
18 3. 0または0から始まらない数字。先頭にマイナス記号をつけることも可能です。^(0|-? [1-9][0-9]*)$
 19 4.これは、0または0から始まらない負の可能性のある数を意味します。 0から始めさせます。お金は負になれないので、負の符号も削除してください。以下は、可能性のある小数点以下の部分を示すために追加するものです。^[0-9]+(. [0-9]+)? $
20 5.小数点以下が1桁以上であることを明記しなければならないので、「10.」は通らないが、「10」「10.2」は通ります。^[0-9]+(. [0-9]{2})? $
21 6.この方法では、小数点以下が2桁になるように指定していますが、これでは厳しいと思われる方は、このようにするとよいでしょう。^[0-9]+(. [0-9]{1,2})? $
 22 7.これにより、小数点以下は1つだけ書くことができます。次に数字のカンマについて考えてみましょう、こんなことができます。^[0-9]{1,3}(,[0-9]{3})*(. [0-9]{1,2})? $
23 8. 1~3桁の数字の後に任意のコンマ+3桁の数字、コンマは必須ではなくオプションとなる。^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(. [0-9]{1,2})? $
24 注:これは最終的な結果です。空の文字列が許容されると考えるなら、「+」を「*」に置き換えることができることを忘れないでください(不思議ですね、なぜでしょう? 最後に、この関数を使うときにバックスラッシュを取り除くことを忘れないでください。一般的なエラーは、次のとおりです。
25 xmlファイルです。^([a-zA-Z]+-?) +[a-zA-Z0-9]+\\. [x|X][m|M][l|L]$.
26 漢字の正規表現 [\u4e00-u9fa5].
27 全角文字。[^x00-xxff] (漢字を含む。文字列の長さを計算するのに使用可能。
 28 空白行のための正規表現。\ns***r (空白行の削除に使用可能)
29 HTMLタグの正規表現。<(\S*?) [^>]*>. *? |<. *? /> (ウェブで出回っているバージョンはとてもひどいので、上のものは部分的にしか機能せず、複雑なネストされたタグにはまだ無力です)
 30 最初と最後の空白文字のための正規表現。^s*|s*$ or (^╱s*)|(\s*$) (行頭と行末の空白文字(スペース、タブ、改ページなどを含む)を取り除くのに使用できる、非常に便利な表現です)
31テンセントQQ番号 [1-9][0-9]{4,} (テンセントQQの番号は10000から)
 32 中国の郵便番号 [1-9]\d{5}(?!!\d) (中国の郵便番号は6桁の数字です)
33 IPアドレスです。\d+\. \d+\. \d+\. \d+ (useful when extracting IP addresses)
 34のIPアドレスです。(( :( :25[0-5]|2[0-4]|[01]? ┳┳)))。{3}(? :25[0-5]|2[0-4]\d|[01]??\d?\d))

golangの正規表現については、この記事がすべてです。golangの正規表現については、BinaryDevelopの過去記事を検索するか、以下の記事を引き続き閲覧してください。