File tree 6 files changed +126
-0
lines changed
6 files changed +126
-0
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "python.linting.pylintEnabled" : false
3
+ }
Original file line number Diff line number Diff line change
1
+ def isPhoneNumber (text ):
2
+ if len (text ) != 12 :
3
+ return False # not phone number-sized
4
+ for i in range (0 , 3 ):
5
+ if not text [i ].isdecimal ():
6
+ return False # not an area code
7
+ if text [3 ] != '-' :
8
+ return False # does not have first hyphen
9
+ for i in range (4 , 7 ):
10
+ if not text [i ].isdecimal ():
11
+ return False # does not have first 3 digits
12
+ if text [7 ] != '-' :
13
+ return False # does not have second hyphen
14
+ for i in range (8 , 12 ):
15
+ if not text [i ].isdecimal ():
16
+ return False # does not have last 4 digits
17
+ return True # "text" is a phone number!
18
+
19
+ print ('415-555-4242 is a phone number:' )
20
+ print (isPhoneNumber ('415-555-4242' ))
21
+ print ('Moshi moshi is a phone number:' )
22
+ print (isPhoneNumber ('Moshi moshi' ))
Original file line number Diff line number Diff line change
1
+ import re
2
+
3
+ def passwordValidation (pwd ):
4
+ if (len (pwd ) < 8 ):
5
+ return False
6
+ upperRegex = re .compile (r'[A-Z]' )
7
+ lowerRegex = re .compile (r'[a-z]' )
8
+ numberRegex = re .compile (r'[0-9]' )
9
+
10
+ if upperRegex .search (pwd ) and lowerRegex .search (pwd ) and numberRegex .search (pwd ):
11
+ return True
12
+ else :
13
+ return False
14
+
15
+ def printResult (pwd ):
16
+ print (pwd .ljust (20 ), passwordValidation (pwd ))
17
+
18
+
19
+ printResult ('HelloWorld123' )
20
+ printResult ('HelloWorld' )
21
+ printResult ('Hello123' )
22
+ printResult ('H' )
23
+ printResult ('elloorld123' )
24
+ printResult ('HW123' )
Original file line number Diff line number Diff line change
1
+ #! python3
2
+ # phoneAndEmail.py - Finds phone numbers and email addresses on the clipboard.
3
+
4
+ import pyperclip , re
5
+
6
+ phoneRegex = re .compile (r'''(
7
+ (\d{3}|\(\d{3}\))? # area code
8
+ (\s|-|\.)? # separator
9
+ (\d{3}) # first 3 digits
10
+ (\s|-|\.) # separator
11
+ (\d{4}) # last 4 digits
12
+ (\s*(ext|x|ext.)\s*(\d{2,5}))? # extension
13
+ )''' , re .VERBOSE )
14
+
15
+ # Create email regex.
16
+ emailRegex = re .compile (r'''(
17
+ [a-zA-Z0-9._%+-]+ # username
18
+ @ # @ symbol
19
+ [a-zA-Z0-9.-]+ # domain name
20
+ (\.[a-zA-Z]{2,4}){1,2} # dot-something
21
+ )''' , re .VERBOSE )
22
+
23
+ # Find matches in clipboard text.
24
+ text = str (pyperclip .paste ())
25
+
26
+ matches = []
27
+ for groups in phoneRegex .findall (text ):
28
+ phoneNum = '-' .join ([groups [1 ], groups [3 ], groups [5 ]])
29
+ if groups [8 ] != '' :
30
+ phoneNum += ' x' + groups [8 ]
31
+ matches .append (phoneNum )
32
+ for groups in emailRegex .findall (text ):
33
+ matches .append (groups [0 ])
34
+
35
+ # Copy results to the clipboard.
36
+ if len (matches ) > 0 :
37
+ pyperclip .copy ('\n ' .join (matches ))
38
+ print ('Copied to clipboard:' )
39
+ print ('\n ' .join (matches ))
40
+ else :
41
+ print ('No phone numbers or email addresses found.' )
Original file line number Diff line number Diff line change
1
+ 虽然在 Python 中使用正则表达式有几个步骤,但每一步都相当简单。
2
+ 1. 用 import re 导入正则表达式模块。
3
+ import re
4
+ 2.用 re.compile()函数创建一个 Regex 对象(记得使用原始字符串)。
5
+ regexObj = re.compile(r'\d{3}-\d{3}-\d{4}')
6
+ 3.向 Regex 对象的 search()方法传入想查找的字符串。它返回一个 Match 对象。
7
+ mo = regexObj.search(strObj)
8
+ 4.调用 Match 对象的 group()方法,返回实际匹配文本的字符串。
9
+ mo.group()
10
+
11
+ regex test site:
12
+ http://www.regexpal.com/
13
+
14
+ 花括号的“非贪心” 版本匹配尽可能最短的字符串,即在结束的花括号后跟着一个问号。
15
+
16
+ \d 0 到 9 的任何数字
17
+ \D 除 0 到 9 的数字以外的任何字符
18
+ \w 任何字母、数字或下划线字符(可以认为是匹配“单词”字符)
19
+ \W 除字母、数字和下划线以外的任何字符
20
+ \s 空格、制表符或换行符(可以认为是匹配“空白”字符)
21
+ \S 除空格、制表符和换行符以外的任何字符
22
+
23
+
24
+ 通过传入 re.DOTALL 作为 re.compile()的第二个参数, 可以让句点字符匹配所有字符, 包括换行字符。
Original file line number Diff line number Diff line change
1
+ import re
2
+
3
+ def stripRe (s ):
4
+ #stripRe = re.compile(r'^\s+\(.*\)\s+$')
5
+ stripRegex = re .compile (r'^\s+(.*)\s+$' )
6
+ mo = stripRegex .search (s )
7
+ return mo .group (1 )
8
+
9
+
10
+ strTest = ' hello world '
11
+ print (strTest )
12
+ print (stripRe (strTest ))
You can’t perform that action at this time.
0 commit comments