hj170520 发表于 2020-5-20 10:32

自学正则表达式,有几道练习题不会做,求大佬们解决一下。

我真的是个菜鸡,做正则的题目没头绪~
找规律没找到。
ps: 这些习题没有答案,好像是个开放式作业。{:301_1007:}import re
# a) Delete all pair of parentheses, unless they contain a parentheses character.

str1 = 'def factorial()'
str2 = 'a/b(division) + c%d(#modulo) - (e+(j/k-3)*4)'
str3 = 'Hi there(greeting). Nice day(a(b)'

remove_parentheses = re.compile(r'')      ##### add your solution here
print(remove_parentheses.sub('', str1))
# 返回 'def factorial'
print(remove_parentheses.sub('', str2))
# 返回 'a/b + c%d - (e+*4)'
print(remove_parentheses.sub('', str3))
# 返回 'Hi there. Nice day(a'

# b) Extract all hex character sequences, with optional prefix.
# Match the characters case insensitively, and the sequences shouldn't be surrounded by other word characters.

hex_seq = re.compile(r'')      ##### add your solution here

str1 = '128A foo 0xfe32 34 0xbar'
##### add your solution here
# 返回 ['128A', '0xfe32', '34']

str2 = '0XDEADBEEF place 0x0ff1ce bad'
#### add your solution here
# 返回 ['0XDEADBEEF', '0x0ff1ce', 'bad']

# c) Check if input string contains any number sequence that is greater than 624.
str1 = 'hi0000432abcd'
##### add your solution here
# 返回 False

str2 = '42_624 0512'
##### add your solution here
# 返回 False

str3 = '3.14 96 2 foo1234baz'
##### add your solution here
# 返回 True

# d) Split the given strings based on consecutive sequence of digit or whitespace characters.

str1 = 'lion \t Ink32onion Nice'
str2 = '**1\f2\n3star\t7 77\r**'
expr = re.compile()       ##### add your solution here
print(expr.split(str1))
# 返回 ['lion', 'Ink', 'onion', 'Nice']
print(expr.split(str2))
# 返回 ['**', 'star', '**']

hj170520 发表于 2020-5-20 10:39

本帖最后由 hj170520 于 2020-5-20 10:41 编辑

remove_parentheses = re.compile(r'\([^(]*?\)')      ##### add your solution here
print(remove_parentheses.sub('', str1))
# 返回 'def factorial'
print(remove_parentheses.sub('', str2))
# 返回 'a/b + c%d - (e+*4)'
print(remove_parentheses.sub('', str3))
# 返回 'Hi there. Nice day(a'

第一个我做出来了{:301_1008:}

这个我开始做的时候怎么也想不到把()括号里的( 去掉

hackxl 发表于 2020-5-20 11:15

没有大佬!大佬都约会去了今天

hj170520 发表于 2020-5-20 11:19

hackxl 发表于 2020-5-20 11:15
没有大佬!大佬都约会去了今天

{:301_1000:}我坚信还有单身的大佬(就算只有百分之0.00000000000000001)

hackxl 发表于 2020-5-20 11:20

hj170520 发表于 2020-5-20 11:19
我坚信还有单身的大佬(就算只有百分之0.00000000000000001)

那百分之0.00000000000000001 就是我可是我不会:lol

hj170520 发表于 2020-5-20 11:26

hackxl 发表于 2020-5-20 11:20
那百分之0.00000000000000001 就是我可是我不会

{:301_1001:} 我也单身,可惜我不是大佬+我不会做这个题

黑色蓝柠檬 发表于 2020-5-20 11:33

45 46的 *

EnterpriseSolu 发表于 2020-5-20 11:51

不用先学代码是如何调用的,这样效率不高,先用正则表达式测试工具,regex buddy, regex test等等,有一堆的工具可以帮助测试,学习正则表达式,这些工具还可以帮助生成高级语言的代码调用,灰常方便

hj170520 发表于 2020-5-20 12:15

EnterpriseSolu 发表于 2020-5-20 11:51
不用先学代码是如何调用的,这样效率不高,先用正则表达式测试工具,regex buddy, regex test等等,有一堆 ...

{:301_999:}
我也是自己敲代码,一个个测试。但就是测试不到那个结果{:301_971:}
这些软件是直接可以获得regex吗

‘json 发表于 2020-5-20 13:32

本帖最后由 ‘json 于 2020-5-20 13:46 编辑

学习了 加油大佬
页: [1] 2 3
查看完整版本: 自学正则表达式,有几道练习题不会做,求大佬们解决一下。