正規表現を使用してMySQLでデータチェックを実施することは可能ですか?
はい、正規表現を使用してMySQLでデータチェックを実施することは可能です。まず、テーブルを作成する必要があります。その後、テーブルに挿入する前にトリガーを作成する必要があります。ここでは、電話番号の形式を確認します。
テーブルを作成するためのクエリは次のとおりです
mysql> create table enforceDataUsingRegularExpression - > ( - > yourPhoneNumber varchar(60) - > ); Query OK, 0 rows affected (0.59 sec)
トリガーを作成するためのクエリは次のとおりです
mysql> DELIMITER // mysql> CREATE TRIGGER enforce_phone_check BEFORE INSERT ON enforceDataUsingRegularExpression - > FOR EACH ROW - > BEGIN - > IF (NEW.yourPhoneNumber REGEXP '^(\\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN - > SIGNAL SQLSTATE '33455' - > SET MESSAGE_TEXT = 'Your Phone Number is incorrect'; - > END IF; - > END // Query OK, 0 rows affected (0.16 sec) mysql> DELIMITER ;
次に、テーブルにレコードを挿入して正規表現を使用してMySQLでデータチェックを実施するときのエラーを確認します
mysql> insert into enforceDataUsingRegularExpression values("+55242-64576"); ERROR 1644 (33455): Your Phone Number is incorrect mysql> insert into enforceDataUsingRegularExpression values("+76-WD1232221"); ERROR 1644 (33455): Your Phone Number is incorrect Now inserting the correct data i.e. the correct phone, which is as follows: mysql> insert into enforceDataUsingRegularExpression values("+55-1232221"); Query OK, 1 row affected (0.13 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示します。
クエリは次のとおりです
mysql> select *from enforceDataUsingRegularExpression;
以下は出力です
+-----------------+ | yourPhoneNumber | +-----------------+ | +55-1232221 | +-----------------+ 1 row in set (0.00 sec)
-
正規表現を使用してPythonで数字のみを照合するにはどうすればよいですか?
次のコードは、Python正規表現を使用して、指定された文字列の数字のみに一致します。 例 import re m = re.search(r'\d+', '5Need47forSpeed 2') print m 出力 <_sre.SRE_Match object at 0x0000000004B46648> 例 次のコードは、指定された文字列内のすべての数字を検索し、それらをリストとして出力します import re m = re.findall(r'\d', '5Need47forSpeed 2') print m
-
正規表現を使用してPythonで単語を照合するにはどうすればよいですか?
次のコードは、指定された文字列の「meeting」という単語と一致します。 前向きな先読みアサーションと後ろ向きアサーションを使用して、囲んでいる文字を尊重しますが、一致には含めません。 例 import re s = """https://www.google.com/meeting_agenda_minutes.html""" result = re.findall(r'(?<=[\W_])meeting(?=[\W_])', s) print result 出力 ['meeting']