每日總結(jié)-day17-正則表達式

一狐胎、內(nèi)存管理

1.內(nèi)存管理基礎(chǔ)
內(nèi)存分為棧區(qū)間和堆區(qū)間鸭栖,棧區(qū)間的內(nèi)存是系統(tǒng)自動申請自動釋放;堆上的內(nèi)存需要程序通過調(diào)用malloc函數(shù)去申請握巢,通過free函數(shù)去釋放
高級語言(java\C++\OC\Python)中的內(nèi)存管理機制晕鹊,都是針對堆上的內(nèi)存管理進行自動化操作

2.Python的內(nèi)存管理機制
1)內(nèi)存的申請
python中所有的數(shù)據(jù)都是存在堆中的,變量是保存在棧區(qū)間的暴浦,變量中保存的是保存在堆中的數(shù)據(jù)的地址捏题。
重新給變量賦值,會先在內(nèi)存空間開辟新的內(nèi)存保存數(shù)據(jù)肉渴,然后新的數(shù)據(jù)的地址重新保存到變量,但是若果使用數(shù)字或字符串給變量賦值带射,不會直接開辟新的內(nèi)存同规,而是先檢查內(nèi)存中有沒有這個數(shù)據(jù),如果有窟社,直接將原來的數(shù)據(jù)的地址給變量

2)內(nèi)存的釋放(垃圾回收機制)
在python中一個數(shù)據(jù)對應(yīng)的內(nèi)存空間是否要釋放券勺,就看這個數(shù)據(jù)的引用計數(shù)是否為0,如果引用計數(shù)為0灿里,數(shù)據(jù)對應(yīng)的內(nèi)存就會被釋放
循環(huán)引用的問題:python的垃圾回收機制會自動處理循環(huán)引用的問題

增加引用計數(shù):增加數(shù)據(jù)的引用(讓更多的變量來保存數(shù)據(jù)的地址)
減少引用計數(shù):刪除引用关炼,或者讓引用去保存新的數(shù)據(jù)

print('======================內(nèi)存申請====================')
a = 10
print(id(a))
a = 100
print(id(a))

b = []
print(id(b))     # 4495144200
b = []
print(id(b))     # 4495187272

c = {'a': 10}
print(id(c))     # 4493576304
c = {'a': 10}
print(id(c))     # 4493576376

d = 100
print(id(d))   # 4491424800
d = 100
print(id(d))   # 4491424800

e = 'abc'
print(id(e))   # 4484038984
e = 'abc'
print(id(e))   # 4484038984

print('=========================內(nèi)存釋放======================')
list1 = [1, 2, 3]    # re: 1
print(getrefcount(list1))  # 2

list2 = list1
print(getrefcount(list1))   # 3

dict1 = {'a': list1}
print(getrefcount(list1), getrefcount(list2))   # 4

del list1
print(getrefcount(list2))    # 3

dict1['a'] = 'abc'
print(getrefcount(list2))    # 2


# 循環(huán)引用
list1 = [1, 2, 3]
list2 = [list1, 10, 20]
list1.append(list2)

del list1
del list2


class Person:
    pass


Person()

list3 = [[100, 200], 20, 30, 40]
# del list3[0]
list3.pop(0)

num = 6
print(getrefcount(num))

二、拷貝

from copy import copy, deepcopy


class Dog:
    def __init__(self, name, color='黃色'):
        self.name = name
        self.color = color

    def __repr__(self):
        return '<%s __id: %s>' % (str(self.__dict__)[1:-1], id(self))


class Person:
    def __init__(self, name, age=10, gender='男', dog=None):
        self.name = name
        self.age = age
        self.gender = gender
        self.dog = dog

    # 這個函數(shù)會在打印當(dāng)前類的對象的時候自動調(diào)用; 函數(shù)的返回值就是打印的結(jié)果
    # 返回值是字符串
    def __repr__(self):
        return '<%s __id: %s>' % (str(self.__dict__)[1:-1], id(self))


# 1.直接賦值
# 用一個變量直接給另外一個變量賦值的時候賦的地址匣吊;賦值后兩個變量保存的是同一個數(shù)據(jù)的地址
print('直接賦值')
p1 = Person('小明', dog=Dog('大黃'))
p2 = p1    # 賦值后p1和p2指向是同一個Person對象
print('p1:', p1)
print('p2:', p2)
p1.gender = '女'
p1.dog.color = '白色'
print('p1:', p1)
print('p2:', p2)


# 2.淺拷貝
# 復(fù)制原數(shù)據(jù)產(chǎn)生一個新的數(shù)據(jù)(值和原數(shù)據(jù)一樣儒拂,地址不同),然后將新的數(shù)據(jù)的地址返回; 如果有子對象色鸳,子對象不會復(fù)制
print('=============淺拷貝==============')
p1 = Person('小明', dog=Dog('大黃'))
p2 = copy(p1)
print(p1)
print(p2)
p1.gender = '女'
p1.dog.color = '白色'
print('p1:', p1)
print('p2:', p2)

# 3.深拷貝
# 復(fù)制原數(shù)據(jù)產(chǎn)生一個新的數(shù)據(jù)(值和原數(shù)據(jù)一樣社痛,地址不同),然后將新的數(shù)據(jù)的地址返回; 如果有子對象命雀,子對象也會復(fù)制
print('=============深拷貝===========')
p1 = Person('小花', dog=Dog('大黃'))
p2 = deepcopy(p1)
print('p1:', p1)
print('p2:', p2)
p1.gender = '女'
p1.dog.color = '白色'
print('p1:', p1)
print('p2:', p2)

三蒜哀、正則表達式

1.什么是正則表達式
用正則符號來描述字符串規(guī)則讓字符串匹配更加簡單的一種工具
正則本身的語法和語言無關(guān),幾乎所有的編程語言都支持正則表達式
python通過re模塊來支持正則表達式

2.正則符號
匹配符號:一個匹配字符能且僅能匹配一個字符
1)普通字符 - 在正則表達式中沒有特殊功能或者特殊意義的字符都是普通字符
普通字符在正則表達式中就代表了這個符號本身吏砂,匹配的時候只能喝這個指定的字符進行匹配

2). - 代表任意字符
一個.代表一個任意字符

3)\w - ASCII表中只能匹配字母撵儿、數(shù)字或者下劃線乘客,ASCII表以外的都可以匹配

4)\d - 匹配任意一個數(shù)字字符

5)\s - 匹配任意空白字符(任意能產(chǎn)生空白效果的字符)

6)\W, \D, \S
\W - 匹配任意非字母、數(shù)字淀歇、下劃線易核、ASCII表以外的字符
\D - 匹配任意非數(shù)字字符
\S - 匹配任意非空白字符

7)[字符集] - 匹配字符集中的任意一個字符
注意:一個中括號只能匹配一個字符
a. [普通字符集] 例如: [abc] - 匹配a,b,c三個字符中的任意一個
b. [字符1-字符2] 例如: [1-9] - 匹配123456789中的任意一個字符
注意:字符1的編碼值必須小于字符2的編碼值

8)[^字符集] - 匹配除了字符集以外假的任意一個字符

檢查符號:只匹配不檢查
1)\b - 檢查是否是單詞結(jié)尾
單次結(jié)尾 - 所有可以區(qū)分出兩個不同單詞的符號都是單詞結(jié)尾,其中字符串開頭和字符串結(jié)尾
用法:檢測\b所在的位置是否是單詞結(jié)尾房匆;不影響匹配的時候的字符串的長度

2)^ - 檢測字符串開頭
判斷^所在位置是否是字符串開頭

3)- 檢測字符串結(jié)尾 判斷所在位置是否是字符串結(jié)尾

匹配次數(shù)
1)? - 匹配0次或一次
x? - x出現(xiàn)0次或1次

2)* - 匹配0次或多次
x* - x出現(xiàn)0次或多次

3)+ - 匹配1次或多次
x+ - x出現(xiàn)1次或多次

4){}
{N} - 匹配N次
{M,N} - 匹配M到N次
{,N} - 匹配至多N次
{M,} - 匹配至少M次

# 2.正則符號
print('=========================匹配符號===========================')
# 1) 普通字符 - 在正則表達式中沒有特殊功能或者特殊意義的字符都是普通字符
# 普通字符在正則表達式中就代表這個符號本身耸成,匹配的時候只能和這個指定的字符進行匹配
# re_str = r'1[3-9]\d{9}'  # python
# re_str = /1[3-9]\d{9}/
re_str = r'abc'
result = re.fullmatch(re_str, 'abc')
print(result)

# 2) .   -   代表任意字符
# 注意: 一個.代表一個任意字符

re_str = r'a.b'   # 匹配一個長度是3的字符串,第一個字符是a,最后一個字符是b, 中間是任意字符
print(re.fullmatch(re_str, 'abc'))   # None
print(re.fullmatch(re_str, 'a你b'))

print(re.fullmatch(r'a..b', 'au9b'))

# 3) \w  - ASCII碼表中只能匹配字母浴鸿、數(shù)字或者下劃線井氢;ASCII碼表以外的都可以匹配
# 注意: 一個\w只能匹配一個字符
re_str = r'a\wb'
print(re.fullmatch(re_str, 'awb'))
print(re.fullmatch(re_str, 'a8b'))
print(re.fullmatch(re_str, 'a_b'))
print(re.fullmatch(re_str, 'a+b'))   # None
print(re.fullmatch(re_str, 'a胡b'))

# 4) \d - 匹配任意一個數(shù)字字符
re_str = r'a\d\db'
print(re.fullmatch(re_str, 'a23b'))
print(re.fullmatch(re_str, 'a33b'))
print(re.fullmatch(re_str, 'aa3b'))   # None

# 5) \s - 匹配任意一個空白字符
re_str = r'a\sb'
print(re.fullmatch(re_str, 'a b'))
print(re.fullmatch(re_str, 'a\tb'))
print(re.fullmatch(re_str, 'a\nb'))
print(re.fullmatch(re_str, 'a   b'))   # None

# 6) \W, \D, \S
# \D - 匹配任意非數(shù)字字符
print(re.fullmatch(r'a\Db\Sc\Wd', 'aZb=c+d'))
print(re.fullmatch(r'a\Db\Sc\Wd', 'a2b=c+d'))   # None
print(re.fullmatch(r'a\Db\Sc\Wd', 'aZb c+d'))   # None
print(re.fullmatch(r'a\Db\Sc\Wd', 'aZb=c胡d'))   # None

# 7) [字符集]  - 匹配字符集中的任意一個字符
"""
注意: 一個[]只能匹配一個字符

a. [普通字符集]  例如: [abc] - 匹配a、b岳链、c三個字符中的任意一個
                     [aA123] - 匹配a花竞、A、1掸哑、2约急、3中的任意一個字符
b. [字符1-字符2] 例如:  [1-9]  - 匹配123456789中的任意一個字符
                      [0-9]  - \d
                      [a-z]  - 匹配任意一個小寫字母
                      [A-Z]  - 匹配任意一個大寫字母
                      [a-zA-Z] - 匹配任意一個字母
                      [\u4e00-\u9fa5]  - 匹配任意一個中文字符
                      [1-9abc] - 匹配1~9或者abc中的任意一個字符
                      [a-zA-Z0-9_]  - 匹配字母數(shù)字下劃線
                      [\dxyz]  - 任意數(shù)字或者x、y苗分、z
注意: 字符1的編碼值必須小于字符2的編碼值

"""
print(re.fullmatch(r'a[xyz89?]b', 'azb'))
print(re.fullmatch(r'a[xyz]b', 'anb'))
print(re.fullmatch(r'a[23456789]b', r'a7b'))
print(re.fullmatch(r'a[1-9abc]b', 'aab'))
print(re.fullmatch(r'a[abc1-9]b', 'aab'))
print(re.fullmatch(r'a[ac1-9b]b', 'aab'))
print(re.fullmatch(r'a[+*-]b', 'a-b'))
print(re.fullmatch(r'a[\dxyz]b', 'axb'))
print(re.fullmatch(r'a[\\dxyz]b', 'a\\b'))

# 8)[^字符集]  -  匹配除了字符集以外的任意一個字符
"""
[^abc]  - 匹配除了abc以外的任意一個字符
[^1-9]  - 匹配除了1~9以外的任意一個字符
"""
print(re.fullmatch(r'a[^xyz]b', 'a=b'))   # None
print(re.fullmatch(r'a[xyz^]b', 'a^b'))


print('============================檢測符號===========================')
# 1) \b  - 檢測是否是單詞結(jié)尾
"""
單詞結(jié)尾 - 所有可以區(qū)分出兩個不同單詞的符號都是單詞結(jié)尾厌蔽,其中字符串開頭和字符串結(jié)尾
用法: 檢測\b所在的位置是否是單詞結(jié)尾;不影響匹配的時候的字符串長度
"""
# 匹配一個長度是3的字符串摔癣,第一個字符是a,最后一個字符是b,中間是任意一個數(shù)字奴饮;并且要求b的后面是單詞邊界
re_str = r'a\db\b'
print(re.fullmatch(re_str, 'a7b'))

re_str = r'a\bxy'
print(re.fullmatch(re_str, 'a xy'))   # None

re_str = r'abc\b\sxyz'
print(re.fullmatch(re_str, 'abc xyz'))

result = re.search(r'\d\d\d\b', 'ashdjfhow2378how 899kah989sf 789')
print(result)

# 2)^ - 檢測字符串開頭
# 判斷^所在的位置是否是字符串開頭
re_str = r'^\d\d\d'
print(re.fullmatch(re_str, '123'))
print(re.search(re_str, 'k898ahs237khhj'))

# 3)$ - 檢測字符串結(jié)尾
re_str = r'\d\d\d$'
print(re.search(re_str, '123k898ahs237khhj990'))

re_str = r'^\d\d\d\d\d$'


print('=========================匹配次數(shù)=======================')
# 1) ?  - 匹配0次或1次
"""
x?   -  x出現(xiàn)0次或1次
\d?  -  任意數(shù)字出現(xiàn)0次或1次
[a-z]?  - 小寫字母出現(xiàn)0次或1次
"""
re_str = r'ax?b'
print(re.fullmatch(re_str, 'ab'))
print(re.fullmatch(re_str, 'axb'))
print(re.fullmatch(re_str, 'axxb'))   # None

# 2) *  - 匹配0次或多次
re_str = r'a\d*b'   # r'a\d\d...\d\db'
print(re.fullmatch(re_str, 'ab'))
print(re.fullmatch(re_str, 'a2b'))
print(re.fullmatch(re_str, 'a12b'))
print(re.fullmatch(re_str, 'a1272937928329b'))

# 3) +  - 匹配1次或多次
re_str = r'a\d+b'
print(re.fullmatch(re_str, 'ac'))   # None
print(re.fullmatch(re_str, 'a2b'))
print(re.fullmatch(re_str, 'a12b'))
print(re.fullmatch(re_str, 'a1272937928329b'))

# 4){}
"""
{N}  -  匹配N次
{M,N} - 匹配M到N次:  ? -> {0,1}
{M,}  - 匹配至少M次  * -> {0,}   + -> {1,}
{,N}  - 匹配最多N次
"""
re_str = r'a\d{5}b'
print(re.fullmatch(re_str, 'a78988b'))
print(re.fullmatch(re_str, 'a7898b'))   # None
print(re.fullmatch(re_str, 'a789880b'))  # None

re_str = r'a\d{3,5}b'
print(re.fullmatch(re_str, 'a78988b'))
print(re.fullmatch(re_str, 'a7898b'))
print(re.fullmatch(re_str, 'a789880b'))   # None

# 練習(xí): 寫一個正則表達式判斷輸入的內(nèi)容是否是整數(shù)
# 123 -> 成功!  123a -> 失敗!   -123  -> 成功!   --123 -> 失敗!   +123 -> 成功
re_str = r'[+-]?[1-9]\d*'

四、正則表達式2

1.貪婪和非貪婪
匹配次數(shù)不確定的時候有貪婪和非貪婪兩種狀態(tài)
?,*,+,{M,N},{,N},{M,} - 默認是貪婪的
??,*?,+?,{M,N}?,{,N}?,{M,}? - 非貪婪

貪婪 - 在能匹配成功的前提下择浊,盡可能多的匹配
非貪婪 - 在能匹配成功的前提下戴卜,盡可能少的匹配

re_str = r'\d{3,5}'
print(re.search(re_str, 'abc2732939333===='))  # match='27329'
re_str = r'\d{3,5}?'
print(re.search(re_str, 'abc2732939333===='))  # match='273'
re_str = r'a\d{3,5}?b'
print(re.search(re_str, 'a7283b238kk===='))   # match='a7283b'


re_str = r'\d+'
print(re.search(re_str, 'abc2732939333===='))  # match='2732939333'


re_str = r'a.+b'
print(re.search(re_str, '==a12xb67yusb0293==='))  # match='a12xb67yusb'

re_str = r'a.+?b'
print(re.search(re_str, '==a12xb67yusb0293==='))  # match='a12xb'

2.分之和分組
1)| - 分之:
正則1|正則2 - 先讓正則1去匹配,如果匹配失敗琢岩,再用正則2匹配投剥;只要兩個當(dāng)中有一個能匹配成功,就成功

  1. () - 分組
    (正則表達式) - 將正則表達式看成一個整體進行操作
    整體控制次數(shù):()匹配次數(shù)
    重復(fù):帶分組的正則表達式\M - 在\M的位置重復(fù)前面第M個分組匹配到的內(nèi)容
# 1) |  -  分之
# 匹配三個數(shù)字或者三個字母的字符串
re_str = r'\d{3}|[a-zA-Z]{3}'
print(re.fullmatch(re_str, '890'))

# 匹配一個字符串: abc前是3個數(shù)字或者3個字母
# 123abc, uJhabc
re_str = r'\d{3}abc|[a-zA-Z]{3}abc'


# 2) ()  - 分組

# ab78hj90lo23
re_str = r'[a-z]{2}\d{2}[a-z]{2}\d{2}[a-z]{2}\d{2}'

# 9h8k9j8j7h6u5k....
re_str = r'(\d[a-z])+'

# 匹配一個字符串: abc前是3個數(shù)字或者3個字母
re_str = r'(\d{3}|[a-z]{3})abc'
print(re.fullmatch(re_str, 'mskabc'))

# abc123abc -成功担孔!  xab234xab  - 成功!  xyz123xyz -成功江锨!
# abc123acb -失敗!   xab234sdk  -失敗攒磨!
# ab-ab   abc-abc   123-123

re_str = r'(\d+)abc\1'
print(re.fullmatch(re_str, '234abc234'))
print(re.fullmatch(re_str, '12345abc12345'))
print(re.fullmatch(re_str, '234abc890'))   # None

re_str = r'(\d+)([a-z]+)=\2'
print(re.fullmatch(re_str, '6kh=kh'))

re_str = r'(\d+)=\1([a-z]+)'
print(re.fullmatch(re_str, '123=123ioo'))

re_str = r'(\d{3})=(\1){2}'
print(re.fullmatch(re_str, '234=234234'))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泳桦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子娩缰,更是在濱河造成了極大的恐慌灸撰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浮毯,居然都是意外死亡完疫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門债蓝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壳鹤,“玉大人,你說我怎么就攤上這事饰迹》际模” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵啊鸭,是天一觀的道長锹淌。 經(jīng)常有香客問我,道長赠制,這世上最難降的妖魔是什么赂摆? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮钟些,結(jié)果婚禮上烟号,老公的妹妹穿的比我還像新娘。我一直安慰自己政恍,他們只是感情好汪拥,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著篙耗,像睡著了一般喷楣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹤树,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音逊朽,去河邊找鬼罕伯。 笑死,一個胖子當(dāng)著我的面吹牛叽讳,可吹牛的內(nèi)容都是我干的追他。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岛蚤,長吁一口氣:“原來是場噩夢啊……” “哼邑狸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涤妒,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤单雾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硅堆,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡屿储,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了渐逃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片够掠。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茄菊,靈堂內(nèi)的尸體忽然破棺而出疯潭,到底是詐尸還是另有隱情,我是刑警寧澤面殖,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布竖哩,位于F島的核電站,受9級特大地震影響畜普,放射性物質(zhì)發(fā)生泄漏期丰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一吃挑、第九天 我趴在偏房一處隱蔽的房頂上張望钝荡。 院中可真熱鬧,春花似錦舶衬、人聲如沸埠通。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽端辱。三九已至,卻和暖如春虽画,著一層夾襖步出監(jiān)牢的瞬間舞蔽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工码撰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渗柿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓脖岛,卻偏偏與公主長得像朵栖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柴梆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言回顧 1.運算符重載 通過在類中實現(xiàn)運算符對應(yīng)的魔法方法陨溅,來讓類的對象支持相關(guān)運算符的操作 2.內(nèi)存管理(面試...
    不語sun閱讀 361評論 0 0
  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位绍在,可能是字母门扇,數(shù)字雹有,標(biāo)點符號,空格悯嗓,換行符件舵,漢字等...
    獅子挽歌閱讀 2,147評論 0 9
  • Python中的正則表達式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,082評論 0 99
  • re模塊手冊 本模塊提供了和Perl里的正則表達式類似的功能脯厨,不關(guān)是正則表達式本身還是被搜索的字符串铅祸,都可以...
    喜歡吃栗子閱讀 4,009評論 0 13
  • 在城市,最熱鬧的街角 人群三五結(jié)伴合武,說說笑笑 我感受到的是他一個人的卑微 像灰塵黏附著雨絲临梗,掉進了泥里 只有花朵記...
    鹿宥宥閱讀 338評論 0 13