day15作业

⼀.获取字符串中:
a.所有的正整数
b.所有的负整数
c.所有的浮点数
d.所有的⾮负浮点数

import re

str1 = '+199,-199,199,-19.9,+19.9,19.9'
re_str = r'^\+\d*'
print(re.findall(re_str, str1))

re_str =r'\-\d+[^\-\d+\.\d+]'
print(re.findall(re_str, str1))

re_str= r'\-?\+?\d+\.\d+'
print(re.findall(re_str, str1))

re_str= r'[^\-\d+\.\d+](\+?\d+\.\d+)'
print(re.findall(re_str, str1))

结果:
['+199']
['-199,']
['-19.9', '+19.9', '19.9']
['+19.9', '19.9']

# ⼆、不定项选择题
# 1. 能够完全匹配字符串“(010)-62661617”和字符串“01062661617”的正则表达式包括(B)
# A. “(?\d{3})?-?\d{8}”
# B. “[0-9()-]+”
# C. “[0-9(-)]\d”
# D. “[(]?\d[)-]\d*”

# 2. 能够完全匹配字符串“c:\rapidminer\lib\plugs”的正则表达式包括(B)
# A. “c:\rapidminer\lib\plugs”
# B. “c:\\rapidminer\\lib\\plugs”
# C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:将后⾯的内容的⼤写变成⼩写
# D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:单⾏匹配


# 3. 能够完全匹配字符串“back”和“back-end”的正则表达式包括(ABC) 短路操作:前⾯的为真了,就不会再执⾏后边的操作
#  A. “\w{4}-\w{3}|\w{4}” B. “\w{4}|\w{4}-\w{3}” C. “\S+-\S+|\S+” D. “\w\b-\b\w|\w*”

# 4. 能够完全匹配字符串“go go”和“kitty kitty”,但不能完全匹配“go kitty”的正则表达式包括(ACD)
# :\1就是重复前⾯第⼀个()/组合⾥⾯的内容
# :\2就是重复前⾯第⼆个()/组合⾥⾯的内容
# A. “\b(\w+)\b\s+\1\b”
# B. “\w{2,5}\s*\1”
# C. “(\S+) \s+\1”
# D. “(\S{2,5})\s{1,}\1”


# 5. 能够在字符串中匹配“aab”,⽽不能匹配“aaab”和“aaaab”的正则表达式包括(BC)
# A. “a*?b”
# B. “a{,2}b”
# C. “aa??b”
# D. “aaa??b”
# 三.观察下⾯双引号内的⽂本:
str1 = '中⽂名 ⻉拉克·侯赛因·奥巴⻢ 外⽂名 Barack Hussein Obama II 别 名 欧巴⻢ 国\
籍美国 ⺠ 族 德裔族 出⽣地 美国夏威夷州檀⾹⼭ 出⽣⽇期 1961年8⽉4⽇ 职 业政治家、律师、总统 毕业院\
校哥伦⽐亚⼤学,哈佛⼤学 信 仰新教 主要成就 1996年伊利诺伊州参议员 主要成就美国第56届、57届总统\
2009年诺⻉尔和平奖获得者 时代周刊年度⻛云⼈物2008、2011 任期内清除本·拉登 代表作品 《我相信变\
⾰》《我⽗亲的梦想》《⽆畏的希望》 所属政党美国⺠主党 ⾎ 型 AB型 学 院⻄⽅学院 妻 ⼦⽶歇尔·拉沃恩·\
奥巴⻢ 性 别 男'
import re
# a. (此题为示范题)当使⽤正则表达式“中⽂名\s+(\S+)\s+”抽取美国总统奥巴⻢的中⽂名时,替换字符
# 串“$1”的赋值为需要抽取的中⽂名。
re_str = r'中⽂名\s+(\S+)\s+'
print(re.findall(re_str, str1))
# ['⻉拉克·侯赛因·奥巴⻢']

# b. 当使⽤正则表达式“__r'外⽂名 ([a-zA-Z]+|\s)+'__”抽取美国总统奥巴⻢的外⽂名时,替换字符串“$1”的赋值为需要抽取的外⽂名。
re_str = r'外⽂名 [a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+\s+'
print(re.findall(re_str, str1))
# ['外⽂名 Barack Hussein Obama ']

# c. 当使⽤正则表达式“__r'出⽣⽇期 ([0-9]+\S){3}'}__”抽取美国总统奥巴⻢的出⽣⽇期时,替换字符串“$1”的赋值为需要抽取的出⽣⽇期。
re_str = r'出⽣⽇期 [0-9]+\S[0-9]+\S[0-9]+\S'
print(re.findall(re_str, str1))
# ['出⽣⽇期 1961年8⽉4⽇']

# d. 使⽤正则表达式“__r'职 业(\S+[、]){2}\S+'__”抽取美国总统奥巴⻢的职业时,替换字符串“$1”的赋值为需要抽取的职业。
re_str = r'职 业\S+[、]\S+[、]\S+'
print(re.findall(re_str, str1))
# ['职 业政治家、律师、总统']

# e. 使⽤正则表达式“__r'主要成就(\S+\s){3}'__”抽取美国总统奥巴⻢的主要成就时,替换字符
# 串“$1”的赋值为需要抽取的主要成就。
re_str = r'主要成就\S+\s\S+\s\S+\s'
print(re.findall(re_str, str1))
# ['主要成就美国第56届、57届总统2009年诺⻉尔和平奖获得者 时代周刊年度⻛云⼈物2008、2011 任期内清除本·拉登 ']

# f. 使⽤正则表达式“__r'妻 ⼦(\S+[·]){2}\S+'__”抽取美国总统奥巴⻢的妻⼦姓名时,替换字符串“$1”的赋值为需要抽取的姓名。
re_str = r'妻 ⼦\S+'
print(re.findall(re_str, str1))
# ['妻 ⼦⽶歇尔·拉沃恩·奥巴⻢']

你可能感兴趣的:(day15作业)