正则表达式与字符串处理实战解析

49、对于给定的输入字符串,提取所有完整的单词。不过,根据用户输入的 ignore 变量,如果单词包含 ignore 变量中的任何字符,则不匹配该单词。假设 ignore 变量不包含任何正则表达式元字符。给出 s1 = 'match after the last newline character' s2 = 'and then you want to test' 分别在 ignore = 'aty' ignore = 'esw' 情况下的处理结果。

ignore = 'aty' 时,
- s1 匹配结果为 ["newline"]
- s2 匹配结果为 []

ignore = 'esw' 时,
- s1 匹配结果为 ["match"]
- s2 匹配结果为 ["and", "you", "to"]

50、过滤所有元素,要求元素开头可以有可选的空白字符,后面紧跟三到五个非数字字符。开头的空白字符不计入非数字字符的计算。

[’
cat’, ‘goal’, ‘he-he’, ‘ok ‘]

51、修改给定的正则表达式,使其得到预期结果。给定字符串 ip = ‘( S:12 E:5 S:4 and E:123 ok S:100 & E:10 S:1 - E:2 S:42 E:43 )’,原正则表达式 ip.scan(/S:\d+.*?E:\d{2,}/) 输出结果不符合预期,需要修改正则表达式以得到预期结果。

可以将正则表达式修改为 /(?<!S:\d+)S:\d+.*?E:\d{2,}/ ,负向后行断言 (?<!S:\d+) 确保匹配的 S 之前没有其他 S:数字 的形式,从而避免匹配到多余的部分。

52、将给定的 Markdown 标题转换为相应的锚点标签。输入以一个或多个 # 字符开头,后面跟一个空格和单词字符。name 属性通过将标题转换为小写并将空格替换为连字符来构造。能否不使用捕获组完成此操作?

对于输入 `header1 = '# Regular Expressions'`,转换后为 => "# <a name='regular-expressions'></a>Regular Expressions"; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值