驼峰转换下划线写法

要求:

编写一个程序将字符串从驼峰式写法转换为下划线写法

  • 定义函数convert_to_snake_case(),接收一个字符串作为参数。
  • 在函数内部,将字符串转换为下划线写法,并返回它。

驼峰式:

骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名

下划线写法:

名称中的每一个逻辑断点都用一个下划线来标记,例如:print_employee。下划线命名法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

示例输入

firstChallenge

示例输出

first_challenge

代码:

import re
def convert_to_snake_case(s):
   snake_case = re.sub(r'(?<!^)(?=[A-Z])', '_', s).lower()
   return snake_case 

# 获取输入 
input_string = input()

# 调用函数,打印输出 
print(convert_to_snake_case(input_string))

疑难点:

该代码使用了正则表达式:

re.sub(r'(?<!^)(?=[A-Z])', '_', s)

  1. sub()具有替换作用;
  2. (?<!^):正则表达式 (?<!^) 是一个负向零宽断言,用于匹配不在字符串开头的位置;
  3. (?=[A-Z]):正则表达式 (?=[A-Z]) 是一个正向零宽断言,用于匹配紧随当前位置的大写字母;

请注意,使用 (?=[A-Z]) 断言时,只是匹配当前位置之后的字符,并不包括该位置上的字符。这个断言通常用于查找特定位置后面的字。

关于 (?=[A-Z])用法举例:

import re

# 定义输入字符串
input_string = 'mHelloWorldD'

# 使用正则表达式进行匹配
pattern = re.compile('[a-z](?=[A-Z])')
matches = pattern.findall(input_string)

# 输出匹配结果
print(matches)

该代码是输出大写字母前的小写字母。

输出结果:

['m', 'o', 'd']

关于例子中re.compile()的用法参考下面链接文章

正则表达式re.compile()的使用-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值