返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现分割单词和转换命名
  • 752
分享到

Python如何实现分割单词和转换命名

2023-07-06 12:07:48 752人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python如何实现分割单词和转换命名”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现分割单词和转换命名”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。分割单词将一个标识

本文小编为大家详细介绍“python如何实现分割单词和转换命名”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现分割单词和转换命名”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

分割单词

将一个标识符分割成若干单词存进列表,便于后续命名法的转换

先引入正则表达式

import re

至于如何分割单词看个人喜好,如以常见分隔符 “ ”、“_”、“-”、“/”、“\” 去分割

re.split('[ _\-/\\\\]+', name)

还可以范围再广一点,拿除了数字和字母以外的所有字符去分割

re.split('[^0-9a-zA-Z]', name)

那对于字母内部怎么分割呢?

综合考虑驼峰命名法、连续大写的缩写单词等,笔者根据经验一般会采用这种策略,连续比较三个字符,满足以下条件之一就分割:“小|大无”、“有|大小”、“小|大有”

  • 是尾字符,是大写,倒数第二个字符是小写,在尾字符前分割,比如 'getA' 分割成 ['get','A']

  • 是非首位的中间字符,是大写,前后至少有一个是小写,在该字符前分割,比如 'getJSONString' 分割成 ['get','jsON','String']

对于字母和数字结合的标识符,就比较难处理了

因为有的数字可以作为单词开头(比如 '3D'),有的又可以作为结尾(比如 'HTML5'),还有的字母数字交错(比如 'm3u8'),暂未想到通用的分割的好办法,根据个人需求实现就行了

综合以上几者的分割函数如下

def to_Words(name):    words = []                  # 用于存储单词的列表    word = ''                   # 用于存储正在构建的单词    if(len(name) <= 1):        words.append(name)        return words    # 按照常见分隔符进行分割    # name_parts = re.split('[ _\-/\\\\]+', name)    # 按照非数字字母字符进行分割    name_parts = re.split('[^0-9a-zA-Z]', name)    for part in name_parts:        part_len = len(part)        # 字符串的长度        word = ''        # 如果子串为空,继续循环        if not part:            continue           for index, char in enumerate(part):            # “小|大无”            if(index == part_len - 1):                if(char.isupper() and part[index-1].islower()):                    if(word): words.append(word)                    words.append(char)                    word = ''                    continue            # “有|大小”或“小|大有”            elif(index != 0 and char.isupper()):                if((part[index-1].islower() and part[index+1].isalpha()) or (part[index-1].isalpha() and part[index+1].islower())):                    if(word): words.append(word)                    word = ''            word += char        if(len(word) > 0): words.append(word)    # 去除空单词    return [word for word in words if word != '']

测试用例如下

print(to_words('IDCard')) # ['ID', 'Card']print(to_words('getJSONObject')) # ['get', 'JSON', 'Object']print(to_words('aaa@bbb.com')) # ['aaa', 'bbb', 'com']print(to_words('D://documents/data.txt')) # ['D', 'documents', 'data', 'txt']

分割成全小写单词

def to_lower_words(name):    words = to_words(name)    return [word.lower() for word in words]

分割成全大写单词

def to_upper_words(name):    words = to_words(name)    return [word.upper() for word in words]

分割成首大写、其余小写单词

def to_capital_words(name):    words = to_words(name)    return [word.capitalize() for word in words]

转中划线命名法

中划线命名法,也叫烤肉串命名法(kebab case),如 'kebab-case'

  • 字母全小写

  • 连字符连接

def to_kebab_case(name):    words = to_lower_words(name)    to_kebab_case = '-'.join(words)    return to_kebab_case

转小蛇式命名法

小蛇式命名法,其实就是小写下划线命名法,也叫蛇式命名法(snake case),如 'snake_case'

  • 字母全小写

  • 下划线连接

def to_snake_case(name):    words = to_lower_words(name)    snake_case_name = '_'.join(words)    return snake_case_name

转大蛇式命名法

大蛇式命名法,其实就是大写下划线命名法,也叫宏命名法(Macro case),如 'MACRO_CASE'

  • 字母全大写

  • 下划线连接

def to_macro_case(name):    words = to_upper_words(name)    snake_case_name = '_'.join(words)    return snake_case_name

转小驼峰命名法

小驼峰命名法,也叫驼峰命名法(camel case) ,如 'camelCase'

  • 首单词首字母小写,后每个单词首字母大写

  • 不使用连接符

def to_camel_case(name):    words = to_words(name)    camel_case_words = []    for word in words:        if len(word) <= 1:            camel_case_words.append(word.upper())        else:            camel_case_words.append(word[0].upper() + word[1:])    camel_case = ''.join(camel_case_words)    if len(camel_case) <= 1:        camel_case = camel_case.lower()    else:        camel_case = ''.join(camel_case[0].lower() + camel_case[1:])    return camel_case

转大驼峰命名法

大驼峰命名法,也叫帕斯卡命名法(pascal case) ,如 'PascalCase'

  • 每个单词首字母大写

  • 不使用连接符

def to_pascal_case(name):    words = to_words(name)    pascal_case_words = []    for word in words:        if len(word) <= 1:            pascal_case_words.append(word.upper())        else:            pascal_case_words.append(word[0].upper() + word[1:])    pascal_case = ''.join(pascal_case_words)    return pascal_case

读到这里,这篇“Python如何实现分割单词和转换命名”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: Python如何实现分割单词和转换命名

本文链接: https://lsjlt.com/news/357997.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何实现分割单词和转换命名
    本文小编为大家详细介绍“Python如何实现分割单词和转换命名”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现分割单词和转换命名”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。分割单词将一个标识...
    99+
    2023-07-06
  • Python分割单词和转换命名法的实现
    目录分割单词分割成全小写单词分割成全大写单词分割成首大写、其余小写单词转中划线命名法转小蛇式命名法转大蛇式命名法转小驼峰命名法转大驼峰命名法分割单词 将一个标识符分割成若干单词存进列...
    99+
    2023-03-15
    Python分割单词 Python转换命名法
  • Python怎么实现分割单词和转换命名
    分割单词将一个标识符分割成若干单词存进列表,便于后续命名法的转换先引入正则表达式包import re至于如何分割单词看个人喜好,如以常见分隔符 “ ”、“_”、“-”、“/”、“\” 去分割re.split('[ _\-/\\\\]...
    99+
    2023-05-14
    Python
  • python如何实现命名列表切割方式
    这篇文章主要为大家展示了“python如何实现命名列表切割方式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现命名列表切割方式”这篇文章吧。命...
    99+
    2024-04-02
  • python中文分词和词频统计如何实现
    这篇文章主要介绍“python中文分词和词频统计如何实现”,在日常操作中,相信很多人在python中文分词和词频统计如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中文分词和词频统计如何实现...
    99+
    2023-07-02
  • PHP 函数命名的单词应该如何分隔?
    php 函数命名单词分隔指南:驼峰命名法:用于方法、类、属性,单词连写首字母大写。下划线分隔:用于函数、常量,单词之间用下划线分隔。 PHP 函数命名单词分隔指南:驼峰命名法与下划线分...
    99+
    2024-04-20
    命名规范 关键词: php
  • python如何转换列表为逗号分割符格式
    这篇文章主要介绍了python如何转换列表为逗号分割符格式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。转换列表为逗号分割符格式感谢你能够认...
    99+
    2024-04-02
  • Python底层技术解析:如何实现分词和词性标注
    Python底层技术解析:如何实现分词和词性标注,需要具体代码示例在自然语言处理(NLP)中,分词和词性标注是一项非常重要的任务。分词是将连续的文字序列切分为单个词语的过程,而词性标注则是为每个词语确定其在文本中的词性,如名词、动词、形容词...
    99+
    2023-11-08
    Python 分词 词性标注
  • css整个英文单词不换行如何实现
    本篇内容介绍了“css整个英文单词不换行如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!css整个英文单词不换行的实现方法:1、通过c...
    99+
    2023-07-05
  • php数组转字符串分割如何实现
    本篇内容主要讲解“php数组转字符串分割如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php数组转字符串分割如何实现”吧!一、implode函数implode函数是PHP中常用的数组转字...
    99+
    2023-07-05
  • JavaScript如何实现简单的词法分析器
    这篇文章主要介绍了JavaScript如何实现简单的词法分析器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript如何实现简单的词法分析器文章都会有所收获,下面我们一起来看看吧。什么是词法分析器?...
    99+
    2023-07-05
  • Python如何实现拼音转换
    这篇文章将为大家详细讲解有关Python如何实现拼音转换,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是拼音转换在我们学习语言之前,我们一般会学习拼音来认识汉字,并学会如何读汉字。所以,拼音在对于我们...
    99+
    2023-06-15
  • Python如何实现农历转换
    这篇“Python如何实现农历转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现农历转换”文章吧。农历,...
    99+
    2023-06-29
  • python+opencv图像分割如何实现分割不规则ROI区域
    这篇文章将为大家详细讲解有关python+opencv图像分割如何实现分割不规则ROI区域,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python有哪些常用库python常用的库:1.requesuts...
    99+
    2023-06-14
  • Python里面如何实现tuple和list的转换?
          在Python中,你可以使用内置的list()和tuple()函数来实现元组(tuple)和列表(list)之间的转换。   1.将元组转换为列表: tuple_var = (1, 2, 3, 4, 5) # 定义一个元组li...
    99+
    2023-09-09
    python 开发语言 tuple
  • 基于Python实现RLE格式分割标注文件的格式转换
    目录1.Airbus Ship Detection Challenge2.数据展示2.1 标注数据2.2 图象文件3.格式转换4.转换结果1.Airbus Ship Detectio...
    99+
    2024-04-02
  • python如何实现命名切片
    这篇文章给大家分享的是有关python如何实现命名切片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。命名切片Python中,分割列表非常简单,各式各样优秀工具都能做到。特别好的一点是,它还能够给列表命名,这对于P...
    99+
    2023-06-27
  • php如何实现秒转换成分
    这篇文章给大家分享的是有关php如何实现秒转换成分的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php实现秒转换成分的方法:1、创建一个PHP示例文件;2、创建“class Calendar{...}”;3、通过...
    99+
    2023-06-28
  • 基于Python如何实现视频分辨率转换
    这篇文章主要为大家展示了“基于Python如何实现视频分辨率转换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于Python如何实现视频分辨率转换”这篇文章吧。环境依赖ffmpeg环境安装,可...
    99+
    2023-06-22
  • python中CURL和python requests的相互转换如何实现
    今天小编给大家分享一下python中CURL和python requests的相互转换如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作