吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2224|回复: 26
收起左侧

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

[复制链接]
hj170520 发表于 2020-5-20 10:32
我真的是个菜鸡,做正则的题目没头绪~
找规律没找到。
ps: 这些习题没有答案,好像是个开放式作业。
[Python] 纯文本查看 复制代码
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 编辑

[Python] 纯文本查看 复制代码
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'


第一个我做出来了

这个我开始做的时候怎么也想不到把(  )括号里的( 去掉
hackxl 发表于 2020-5-20 11:15
 楼主| hj170520 发表于 2020-5-20 11:19
hackxl 发表于 2020-5-20 11:15
没有大佬!大佬都约会去了  今天

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

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

我也单身,可惜我不是大佬+我不会做这个题
黑色蓝柠檬 发表于 2020-5-20 11:33
45 46的 [a-zA-Z\*]*
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等等,有一堆 ...


我也是自己敲代码,一个个测试。但就是测试不到那个结果
这些软件是直接可以获得regex吗
‘json 发表于 2020-5-20 13:32
本帖最后由 ‘json 于 2020-5-20 13:46 编辑

学习了 加油大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 03:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表