Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b26c095

Browse files
update
1 parent 621d289 commit b26c095

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
* [Theano (神经网络)](https://morvanzhou.github.io/tutorials/machine-learning/theano/)
2727
* [Keras (快速神经网络)](https://morvanzhou.github.io/tutorials/machine-learning/keras/)
2828
* [Scikit-Learn (机器学习)](https://morvanzhou.github.io/tutorials/machine-learning/sklearn/)
29+
* [机器学习实战](https://morvanzhou.github.io/tutorials/machine-learning/ML-practice/)
2930
* [数据处理](https://morvanzhou.github.io/tutorials/data-manipulation/)
3031
* [Numpy & Pandas (处理数据)](https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/)
3132
* [Matplotlib (绘图)](https://morvanzhou.github.io/tutorials/data-manipulation/plt/)

‎basic/36_RegEx.py‎

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import re
2+
3+
# matching string
4+
pattern1 = "cat"
5+
pattern2 = "bird"
6+
string = "dog runs to cat"
7+
print(pattern1 in string) # True
8+
print(pattern2 in string) # False
9+
10+
11+
# regular expression
12+
pattern1 = "cat"
13+
pattern2 = "bird"
14+
string = "dog runs to cat"
15+
print(re.search(pattern1, string)) # <_sre.SRE_Match object; span=(12, 15), match='cat'>
16+
print(re.search(pattern2, string)) # None
17+
18+
19+
# multiple patterns ("run" or "ran")
20+
ptn = r"r[au]n" # start with "r" means regular expression
21+
print(re.search(ptn, "dog runs to cat")) # <_sre.SRE_Match object; span=(4, 7), match='run'>
22+
23+
24+
# continue
25+
print(re.search(r"r[A-Z]n", "dog runs to cat")) # None
26+
print(re.search(r"r[a-z]n", "dog runs to cat")) # <_sre.SRE_Match object; span=(4, 7), match='run'>
27+
print(re.search(r"r[0-9]n", "dog r2ns to cat")) # <_sre.SRE_Match object; span=(4, 7), match='r2n'>
28+
print(re.search(r"r[0-9a-z]n", "dog runs to cat")) # <_sre.SRE_Match object; span=(4, 7), match='run'>
29+
30+
31+
# \d : decimal digit
32+
print(re.search(r"r\dn", "run r4n")) # <_sre.SRE_Match object; span=(4, 7), match='r4n'>
33+
# \D : any non-decimal digit
34+
print(re.search(r"r\Dn", "run r4n")) # <_sre.SRE_Match object; span=(0, 3), match='run'>
35+
# \s : any white space [\t\n\r\f\v]
36+
print(re.search(r"r\sn", "r\nn r4n")) # <_sre.SRE_Match object; span=(0, 3), match='r\nn'>
37+
# \S : opposite to \s, any non-white space
38+
print(re.search(r"r\Sn", "r\nn r4n")) # <_sre.SRE_Match object; span=(4, 7), match='r4n'>
39+
# \w : [a-zA-Z0-9_]
40+
print(re.search(r"r\wn", "r\nn r4n")) # <_sre.SRE_Match object; span=(4, 7), match='r4n'>
41+
# \W : opposite to \w
42+
print(re.search(r"r\Wn", "r\nn r4n")) # <_sre.SRE_Match object; span=(0, 3), match='r\nn'>
43+
# \b : empty string (only at the start or end of the word)
44+
print(re.search(r"\bruns\b", "dog runs to cat")) # <_sre.SRE_Match object; span=(4, 8), match='runs'>
45+
# \B : empty string (but not at the start or end of a word)
46+
print(re.search(r"\B runs \B", "dog runs to cat")) # <_sre.SRE_Match object; span=(8, 14), match=' runs '>
47+
# \\ : match \
48+
print(re.search(r"runs\\", "runs\ to me")) # <_sre.SRE_Match object; span=(0, 5), match='runs\\'>
49+
# . : match anything (except \n)
50+
print(re.search(r"r.n", "r[ns to me")) # <_sre.SRE_Match object; span=(0, 3), match='r[n'>
51+
# ^ : match line beginning
52+
print(re.search(r"^dog", "dog runs to cat")) # <_sre.SRE_Match object; span=(0, 3), match='dog'>
53+
# $ : match line ending
54+
print(re.search(r"cat$", "dog runs to cat")) # <_sre.SRE_Match object; span=(12, 15), match='cat'>
55+
# ? : may or may not occur
56+
print(re.search(r"Mon(day)?", "Monday")) # <_sre.SRE_Match object; span=(0, 6), match='Monday'>
57+
print(re.search(r"Mon(day)?", "Mon")) # <_sre.SRE_Match object; span=(0, 3), match='Mon'>
58+
59+
60+
# multi-line
61+
string = """
62+
dog runs to cat.
63+
I run to dog.
64+
"""
65+
print(re.search(r"^I", string)) # None
66+
print(re.search(r"^I", string, flags=re.M)) # <_sre.SRE_Match object; span=(18, 19), match='I'>
67+
68+
69+
# * : occur 0 or more times
70+
print(re.search(r"ab*", "a")) # <_sre.SRE_Match object; span=(0, 1), match='a'>
71+
print(re.search(r"ab*", "abbbbb")) # <_sre.SRE_Match object; span=(0, 6), match='abbbbb'>
72+
73+
# + : occur 1 or more times
74+
print(re.search(r"ab+", "a")) # None
75+
print(re.search(r"ab+", "abbbbb")) # <_sre.SRE_Match object; span=(0, 6), match='abbbbb'>
76+
77+
# {n, m} : occur n to m times
78+
print(re.search(r"ab{2,10}", "a")) # None
79+
print(re.search(r"ab{2,10}", "abbbbb")) # <_sre.SRE_Match object; span=(0, 6), match='abbbbb'>
80+
81+
82+
# group
83+
match = re.search(r"(\d+), Date: (.+)", "ID: 021523, Date: Feb/12/2017")
84+
print(match.group()) # 021523, Date: Feb/12/2017
85+
print(match.group(1)) # 021523
86+
print(match.group(2)) # Date: Feb/12/2017
87+
88+
# findall
89+
print(re.findall(r"r[ua]n", "run ran ren")) # ['run', 'ran']
90+
91+
# | : or
92+
print(re.findall(r"(run|ran)", "run ran ren")) # ['run', 'ran']
93+
94+
95+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /