[]正規表現の実際の使用は、フォームの検証は本来として実装されています

ここに画像を挿入説明


序文

定期的な運動は、実際の場面での表現の使用を探求し続けて、このプロジェクトの内容は、私が監督し、カザフスタンで主演するものです。

-

まず、問題の背景

私はあなたがXX XXソフトウェアやプラットフォームに登録したアカウントを持っている必要があります必ず、あなたがアカウントを登録するときなどにユーザー名、パスワード、電話番号、電子メールと記入する必要がありますよ。

あなたが特定のフォームに記入した場合は、次のステップに入ることができないため、エラーになり、それらのシステムの要件を満たし、かつしません。

その後、フォームに記入ユーザーのための機能を確認し、それが実際の使用量の最も一般的な正規表現の一つです。

時間は、実際に来て、簡単なフォームの検証手順を設計するために正規表現を使用します。

:次のように示す
ここに画像を挿入説明
要件:

  1. ユーザ入力情報が定義され、それぞれの条件を満たさなければなりません
  2. ユーザーは一時間に応じて、すべての情報の内容を入力するように要求されています
  3. 最後に、コンプライアンスのためのユーザ入力情報に基づいてプログラムが結果を印刷します。情報が正当なものである場合は、「経由」、情報が「ノー行く」と表示され、対応する正しい注意書き表示に法的ではない場合。

プログラムの最終的な結果は次のように大まかに実行する必要があります
ここに画像を挿入説明
-

第二に、機能解析

最初のステップ:正規表現を構築します

  • 適切なプロジェクトの要件によると、すべての正規表現を構築
  • 彼らを含める:ユーザー名、パスワード、およびパスワードを確認し、電話番号、正規表現の電子メールやID番号を

ステップ2:ターンは、ユーザの入力情報と一致します

  • 1回の入力機能を持つすべてのコンテンツの情報を取得します
  • ユーザーは、正規表現のマッチングと順番に情報を入力します

第三段階:印刷情報

  • ユーザ入力情報がルールに準拠し、対応する結果をプリントアウトするかどうかを決定します
  • 正当なメッセージは、「通過」が表示された場合
  • 情報を表示することは違法である場合に表示され、適切な注意書きが正しく「全く行かない」と

フレームワークは、以下のように:

import re

# 第一步:构建正则表达式

# 【01】构建用户名正则表达式(仅由中文汉字、英文字母、数字组成,长度3-16位)
# 【02】构建登录密码正则表达式(仅由英文字母、数字、下划线组成,要求密码中同时包含大小写字母和数字,长度8-16位)
# 【03】构建手机号码正则表达式(请输入正确的11位手机号码)
# 【04】构建电子邮件正则表达式(请输入正确的电子邮箱地址)
# 【05】构建身份证号码正则表达式(请输入正确的15位或18位身份证号码)

# 第二步:依次匹配用户输入信息

# 第三步:打印信息

-

第三に、コードの実装

我々は正式に完全なコードを記述する必要がありますので、具体的な説明は、コードを注釈を付けています。

import re

# 第一步:构建正则表达式

# 【01】构建用户名正则表达式(仅由中文汉字、英文字母、数字组成,长度3-16位)
usernameRegex = re.compile(r'^[\u4e00-\u9fa5a-zA-Z0-9]{3,16}$')    # 中间的一大串可以用\w代替,其中[\u4e00-\u9fa5]代表中文字符

# 【02】构建登录密码正则表达式(仅由英文字母、数字、下划线组成,要求密码中同时包含大小写字母和数字,长度8-16位)
passwordRegex = re.compile(r'^((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{8,16}$')    # 涉及零宽断言的知识

# 【03】构建手机号码正则表达式(请输入正确的11位手机号码)
numberRegex = re.compile(r'^\d{11}$')

# 【04】构建电子邮件正则表达式(请输入正确的电子邮箱地址)
mailRegex = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.([a-zA-Z]{2,4})$')

# 【05】构建身份证号码正则表达式(请输入正确的15位或18位身份证号码)
idRegex = re.compile(r'^((\d{15}|\d{17}(\d|X|x)))$')   # 其中18位身份证号码的最后一位可能是X

# 第二步:依次匹配用户输入信息

username = input('请输入用户名(仅由中文汉字、英文字母、数字组成,长度3-16位):\n')
password = input('请输入密码(仅由英文字母、数字、下划线组成,要求密码中同时包含大小写字母和数字,长度8-16位):\n')
password2 = input('请再次输入密码(与上面输入密码保持一致):\n')
number = input('请输入电话号码(请输入正确的11位手机号码):\n')
mail = input('请输入邮箱地址(请输入正确的电子邮箱地址):\n')
idnubmer = input('请输入身份证号码(请输入正确的15位或18位身份证号码):\n')

# 利用re.match进行验证
mo1 = usernameRegex.match(username)  
mo2 = passwordRegex.match(password)
mo3 = numberRegex.match(number)
mo4 = mailRegex.match(mail)
mo5 = idRegex.match(idnubmer)

# 第三步:打印信息

print('\n\n*************************************结果显示***************************************')

print('用户名验证:\n')
if mo1:
	print('通过')
else:
	print('不通过,用户名仅由中文汉字、英文字母、数字组成,长度3-16位')
print('--------------------------------------------------------------------------------------\n')

print('密码验证:\n')
if mo2:
	print('通过')
else:
	print('不通过,密码仅由英文字母、数字、下划线组成,要求密码中同时包含大小写字母和数字,长度8-16位')
print('\n--------------------------------------------------------------------------------------')

print('密码确认:')
if (password2 == password) and (mo2 != None):
	print('通过')
else:
	print('不通过,请重新检查')
print('\n--------------------------------------------------------------------------------------')

print('电话号码验证:')
if mo3:
	print('通过')
else:
	print('不通过,请输入正确的11位手机号码')
print('\n--------------------------------------------------------------------------------------')

print('电子邮箱验证:')
if mo4:
	print('通过')
else:
	print('不通过,请输入正确的电子邮箱地址')
print('\n--------------------------------------------------------------------------------------')

print('身份证号码验证:')
if mo5:
	print('通过')
else:
	print('不通过,请输入正确的15位或18位身份证号码')
print('\n--------------------------------------------------------------------------------------')

具体的なテストプロセスは、ここに表示されますない入力情報の基本的なルールに基づいて、少し試してみました示していなくなりました「いいえ。」

-

第四に、リカバリディスクの概要

  1. 重要な点は、さまざまな正規表現の構造自体は、どのようにコードにニーズを変換することです
  2. 新しい学習正規表現の漢字:[\ u4e00- \ u9fa5]
  3. 建設の要件を通じ大文字と小文字と数字のパスワード正規表現、予備的なノウハウの両方を含みますゼロ幅アサーション知識は、もちろん、まださらなる研究の概要を必要とします。

-
ここに画像を挿入説明

公開された35元の記事 ウォン称賛35 ビュー2743

おすすめ

転載: blog.csdn.net/nilvya/article/details/104198312