正则表达式练习

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

str1 = 'sd4-dfsg3.5-fgsgfb+64.6-4.52.3cd4-3sd+f0.254s.36-54.9-56-4dsf'
a = r'\+?\d+'
print(re.findall(a, str1))
b = r'-\d+'
print(re.findall(b, str1))
c = r'\+?\d+\.\d+|-\d+\.\d+'
print(re.findall(c, str1))
# d = r'[^-]\d+\.\d+'
d = r'\+?\d+\.\d+'
print(re.findall(d, str1))


运行结果:
['4', '3', '5', '+64', '6', '4', '52', '3', '4', '3', '0', '254', '36', '54', '9', '56', '4']
['-4', '-3', '-54', '-56', '-4']
['3.5', '+64.6', '-4.52', '0.254', '-54.9']
['3.5', '+64.6', '4.52', '0.254', '54.9']

二、不定项选择题

  1. 能够完全匹配字符串“(010)-62661617”和字符串“01062661617”的正则表达式包括( A B D )

A. “(?\d{3})?-?\d{8}”
B. “[0-9()-]+”
C. “[0-9(-)]\d
D. “[(]?\d*[)-]*\d*”

  1. 能够完全匹配字符串“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:单行匹配

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

  3. 能够完全匹配字符串“go go”和“kitty kitty”,但不能完全匹配“go kitty”的正则表达式包括( C )
    :\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”

  4. 能够在字符串中匹配“aab”,而不能匹配“aaab”和“aaaab”的正则表达式包括( C )
    A. “a*?b”
    B. “a{,2}b”
    C. “aa??b”
    D. “aaa??b”

三.观察下面双引号内的文本
”中文名 贝拉克·侯赛因·奥巴马 外文名 Barack Hussein Obama II 别 名 欧巴马 国 籍美国 民 族 德裔族 出生地 美国夏威夷州檀香山 出生日期 1961年8月4日 职 业政治家、律师、总统 毕业院校哥伦比亚大学,哈佛大学 信 仰新教 主要成就 1996年伊利诺伊州参议员 主要成就美国第56届、57届总统 2009年诺贝尔和平奖获得者 时代周刊年度风云人物2008、2011 任期内清除本·拉登 代表作品 《我相信变革》《我父亲的梦想》《无畏的希望》 所属政党美国民主党 血 型 AB型 学 院西方学院 妻 子米歇尔·拉沃恩·奥巴马 性 别 男”

a. (此题为示范题)当使用正则表达式“中文名\s+(\S+)\s+”抽取美国总统奥巴马的中文名时,替换字符串“$1”的赋值为需要抽取的中文名。

b.当使用正则表达式“外文名\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+_”抽取美国总统奥巴马的外文名时,替换字符串“$1”的赋值为需要抽取的外文名。

c.当使用正则表达式“出生日期\s+(\d{4})年\d月\d日\s”抽取美国总统奥巴马的出生日期时,替换字符串“$1”的赋值为需要抽取的出生日期。

d.使用正则表达式“职\s+业(\S+)、(\S+)、(\S+)\s”抽取美国总统奥巴马的职业时,替换字符串“$1”的赋值为需要抽取的职业。

e.使用正则表达式“主要成就\s+(\S+)\s(\S+)、(\S+)\s(\S+)、(\S+)\s_”抽取美国总统奥巴马的主要成就时,替换字符串“$1”的赋值为需要抽取的主要成就。

f.使用正则表达式“妻\s+子(\S+)\s”抽取美国总统奥巴马的妻子姓名时,替换字符串“$1”的赋值为需要抽取的姓名。

你可能感兴趣的:(正则表达式练习)