首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我如何在".“上拆分。但只有在后面有非数字的情况下?

在".“上拆分字符串,但只有在后面有非数字的情况下,可以使用字符串的split()方法结合正则表达式来实现。

首先,使用split()方法将字符串按照".“进行拆分,得到一个列表。然后,遍历列表中的每个元素,判断是否以数字结尾。可以使用正则表达式"\D$"来匹配非数字字符结尾的情况。如果匹配成功,则将该元素拆分为两部分,分别是数字部分和非数字部分。

以下是一个示例代码:

代码语言:txt
复制
import re

def split_string(string):
    parts = string.split(".")
    result = []
    for part in parts:
        if re.search("\D$", part):
            match = re.search("(\d+)(\D+)$", part)
            if match:
                result.append(match.group(1))
                result.append(match.group(2))
        else:
            result.append(part)
    return result

# 示例用法
string = "abc.123.xyz.456"
result = split_string(string)
print(result)

输出结果为:['abc', '123', 'xyz', '456']

在这个例子中,字符串"abc.123.xyz.456"被拆分为['abc', '123', 'xyz', '456']。其中,"abc"和"xyz"是非数字部分,"123"和"456"是数字部分。

请注意,这只是一个示例代码,实际应用中可能需要根据具体需求进行适当的修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • JavaScript 编程精解 中文第三版 一、值,类型和运算符

    与之类似,给定 64 个二进制数字,你可以表示2^64个不同的数字,大约 18 亿亿(18 后面有 18 个零)。太多了。...但少数字符更难。 你可能难以想象,如何在引号之间加引号。 当使用反引号(`)引用字符串时,换行符(当你按回车键时获得的字符)可能会被包含,而无需转义。...undefined和null之间的意义差异是 JavaScript 设计的一个意外,大多数时候它并不重要。 在你实际上不得不关注这些值的情况下,我建议将它们视为几乎可互换的。...在绝大多数情况下,JavaScript 只是将其中一个值转换成另一个值的类型。但如果运算符两侧存在null或undefined,那么只有两侧均为null或undefined时结果才为true。...我建议使用三字符比较运算符来防止意外类型转换的发生,避免作茧自缚。但如果比较运算符两侧的值类型是相同的,那么使用较短的运算符也没有问题。

    1.1K80

    懂数据系列第一课 :数据分析基础理论

    为了更好地解释这这个问题,我想我需要先介绍一些概念。 数据≠数字 很多人会认为数据分析就是和数字打交道,实际上数据和数字并不是相同的概念。...很多时候,定性分析比定量分析更能发现问题得出结论,但是定性分析的难度往往比定量分析要大得多,分析难度主要体现在了将非结构化的数据结构化。一半而言,只有结构化的数据才可以进行数据分析。...第三,数据不止有数字,非数字的数据还有很多,对数字敏感不敏感其实没有那么重要。...三、什么样的数据才能够被分析 例如如下数据: (示例数据,就不放了,一个业务真实在用的表格) 如何在1分钟内告诉我周六有多少节课?...下面我会给大家介绍一些非常简单的原则: 一列只有一个类型的信息 如:性别和年龄是两个类型的信息,不应把这两个信息写在同一列中。

    31820

    大厂node.js高阶面试题和答案,重点难点攻克!

    Node.js 应用程序在单个处理器上运行,这意味着默认情况下它们不会利用多核系统。 集群模式用于启动多个 node.js 进程,从而拥有多个事件循环实例。...当我们开始在后台的 nodejs 应用程序中使用集群时,会创建多个 node.js 进程,但还有一个称为集群管理器的父进程,它负责监控我们应用程序各个实例的健康状况。...这些进程在每个 CPU 中产生,因此将具有单独的内存和节点实例,这将进一步导致内存问题。  工作线程: 总共只有一个进程有多个线程。...9、 解释 Node.js 中的Reactor反应器模式是什么 ? Reactor 模式又是一种用于非阻塞 I/O 操作的模式,但总的来说,这用于任何事件驱动的架构。 这里面有两个组件: 1....缓冲区是在 JavaScript 的 Unit8Array 以外的其他用例中引入的,主要用于表示固定长度的字节序列。 这也支持传统编码,如 ASCII、utf-8 等。

    5.7K30

    垂直或水平拆分vim工作空间

    让我们来看看如何在Vim中创建拆分窗口。 有两种方法可以拆分 Vim 工作区 - 水平和/或垂直拆分。 垂直拆分窗口 假设你已经在 Vim 中打开了一个文件,并且想要垂直拆分屏幕。...并按 l 调整拆分窗口的大小 默认情况下,Vim 会创建具有相似宽度/高度的分割空间。...但当我有一个文件,我大部分时间都在编辑,而另一个我很少编辑的文件时,就需要调整空间占用。 因此,让我们来看看如何在Vim中调整拆分窗口的大小。...调整窗口大小 若要调整窗口大小,请使用下列方法之一: 按 Ctrl + w 组合键 [可选指定一个数字],然后按“+”(加号)符号以增加当前窗口的高度 按 Ctrl + w 组合键 [可选指定一个数字]...,然后按“-”(减号)符号以减小当前窗口的高度 按 Ctrl + w 组合键 [可选指定一个数字],然后按“的宽度 按 Ctrl + w 组合键 [可选指定一个数字],然后按

    1.8K30

    基于时间维度水平拆分的多 TiDB 集群统一数据路由联邦查询技术的实践

    在这种背景下,如何在保证数据一致性、高可用性的同时,实现业务的快速扩展与高效查询,成为了企业数字化转型的关键挑战。...同时,本文分享了具体的技术实现,包括如何在多集群环境下进行数据路由、事务管理及跨集群查询,帮助企业在确保稳定性的基础上,支持更高的并发和更复杂的查询需求。...在场景分类的基础上,还需要结合集群间数据生命周期管理策略的要求进一步细化相关设计:集群拆分和容量规划:如“需求背景”章节所述,TiDB 多副本整体数据规模接近 PB 级,并且访问频度、SLA 等级随数据热度的降低也会显著下降...,所以,按照热、温、冷水平拆分了三类集群,并在分片规则上引入了“相对时间”、“绝对时间”的概念。...该自研组件的设计理念与 ShardingSphere 低业务侵入的方式有所不同,本质上也是为了在“工期紧、任务重”的客观情况下寻求最优解。

    8010

    随机数与区块链

    译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 当我们谈论随机数和区块链时,实际上是两个问题: 如何在智能合约中生成随机数? 如何为股权证明(POS)系统产生随机数?...人们可以很容易地创造出一个看似随机的数字流,但这个数字流遵循某种已知的逻辑,从使攻击者能够预测到数字。 ? 我们可能会天真地提出,每个节点在本地计算出一个随机数。然后在广播出这个随机数。...遗憾的是没有一个万能的解决方案,让我来介绍一下现有的解决方案。 简短的失败方案回顾 ? 我们简单的看一下常见的方案,以及它们为什么不好。在这里我就不详细描述,因为已经有其他的文章描述的很好了。 1....它揭示的Vi可能无法再影响R, 然而,它可能选择不揭示该值,使所有其他各方除了中止随机数生成外没有其他选择。如在两个用户的情况下,不揭示的节点可能会输掉这场赌局。不过,在东方参与情况下是不够的。...在 ETH2.0 中,Randao 也将作为基础随机信标,上面有 VDF(可验证的延迟函数)。我们可以在后面的文章中详细讨论 ETH2.0 中的用法。

    81010

    手撕Python之正则

    3.匹配单个字符 \w 匹配单词字符,如字母、数字、下划线、汉字 .的匹配操作 import re #.匹配任意字符,除了\n print(re.findall('.'...标点符号啥的都不进行匹配操作 匹配单词字符,如字母数字下划线等 import re print(re.findall('\w','hi,小明!'))...贪婪和非贪婪 贪婪:满足匹配的情况下,尽可能匹配多的数据 非贪婪:满足匹配的情况下,尽可能匹配少的数据 默认是贪婪模式 import re print(re.findall('\S{2,4}','hi,...) print(l) #['huahua', 'xiaoming', 'lisi', 'lala'] 将字符串中满足条件的数字进行拆分了,以数字进行拆分符号进行拆分 第一个参数是拆分符号的特点,第二个参数是要拆分的字符串...在这个例子中,"ve2test" 以 "ve" 开头,但 "ve" 后面紧跟着的是数字 "2",而不是一个单词边界。因此,re.match 会返回 None,表示没有匹配成功。

    12210

    如何写出你的第一个递归函数?

    我们在学习一个新的东西时,常常使用现实中的东西作类比。学习编程也不例外。 但编程里面有一些术语或者思想或者理论,在现实中不容易找到类比的东西,此时初学者就很难理解了。 递归就是这样一个例子。...由于我们原来的函数check_in只能检查数字是否在一个只有一个元素的列表中,所以为了实现新的需求,就需要 再写一个新的函数。...…… 所以,对于 check_in_n,其中n是任意一个大于1的数字,归根到底,它都是通过多次调用 check_in来实现的。 那么问题来了,我要检查的列表里面有100个元素,我应该怎么办呢?...我怎么知道你传给我的列表里面有多少给元素?难道为了处理所有的情况,我需要针对每一个元素个数的列表都单独函数来处理?...因为栈满了,新的数据没有办法保存了。 最后,可能有人会吐槽我这篇文章举的那个检查目标数字是否在列表中的代码写的太麻烦了,可以用一个for循环就搞定的事情,非要上递归,简单问题复杂化。

    80520

    Vue.js中的延迟加载和代码拆分

    输出包只是一个(或我们将在后面的部分中看到的多个)javascript文件,其中包含依赖图中的所有模块。 这个bundle包本质上是我们整个应用程序的JavaScript。...顾名思义,延迟加载是一个懒惰地加载应用程序的部分(块)的过程。换句话说 - 只有在我们真正需要它们时加载它们。代码拆分只是将应用程序拆分为多个延迟加载的代码块的一种处理方式。 ?...在大多数情况下,当用户访问您的网站时,您不需要立即使用Javascript包中的所有代码。 例如,我们不需要花费宝贵的资源来为首次访问我们网站的访客加载“我的页面”区域。...例如,作为对某个用户交互的响应(如路由更改或单击)。...在本系列的下一部分中,我将向您展示在任何Vue.js应用程序上获得显着性能提升的最有用(也是最快)的方法。 您将学习如何使用异步路由拆分Vue代码,以及此过程中推荐的最佳实践。

    7.8K10

    Open RAN之RU、DU、CU: Why?What?When? How?

    灵活的硬件和软件允许进行可扩展的、低成本的网络部署,但前提是硬件和软件组件可以互操作并且可以与不同供应商进行混合和匹配。...为了正确处理数字信号并加快网络流量,可以使用FPGA。虽然硬件加速被认为是5G的必要条件,但在2G、3G甚至4G等以前的技术中就不那么必要了。 ?...主要结论:不同的拆分适用于不同的用例。 When 如何在体系结构中划分新的无线电(NR)功能取决于与无线电网络部署方案和预期支持用例相关的某些因素。...这里面有三个关键要素: 需要对每项服务(例如城市地区的低延迟、高吞吐量)和实时/非实时应用提供特定的QoS支持。 支持特定用户密度和特定地理区域的负载需求。 具有不同性能水平的可用传输网络。 ?...为了满足最佳的延迟支持要求,与硬件分离的基带功能应该部署在NFVI上或作为容器部署。MNO可以使用任何VM需求或编排来启用这些功能拆分。 ?

    1.9K10

    以淘宝店铺为例,谈谈 TypeScript ESLint 规则集考量

    ,对于 TypeScript 代码进行约束的思考,以及如何在自己的团队内推广这一套规则。...为什么:没有父类型的空接口实际上就等于 {},虽然我不确定你使用它是为了什么,但我能告诉你这是不对的。...而单继承的空接口场景则是较多的,如先确定下继承关系再在后续添加成员。 no-explicit-any 不允许显式的 any。...4.5 支持了类型与值的混合导入:import { foo, type Foo },但还是推荐通过拆分值导入与类型导入语句来获得更清晰地项目结构)。...如果你有什么想法,欢迎与我一起交流,但请注意:我不是在灌输你一定要使用什么规则,我只是在分享我们使用的规则以及考量,因此在留言前请确认不要属于此类观点,感谢你的阅读。

    2.7K30

    Java正则表达式学习笔记

    正则 一、理论 所有的开发中百分百都会使用,不会用复杂的,一般几种情况下使用:验证、拆分、替换; 理论很简单,这里都懒得说了,也没有什么好说的,正则比较普通方法用起来快,比较简化。...注意:以下的两个\表示一个\ \d :表示任意一位数字,等价于[0-9], 例如(差不多) 这样是true,要是str=“a”,就是false了 \D :取反(\d)的反义词,表示任意一位非数字...这个是true \s :表示任一空格,可能是\n或\t \S :取反(\s)的反义词,表示非空格 4.边界匹配(一般java很少用,javaScript会用到) 如: ^ :表示正则匹配的开始...: 正则的原理就是离散型数学,我也没有学会。...范例:进行拆分 按照数字拆分,有些说写[0-9] 可是结果: 所以要这么写: //一般不会这么写,应该是: 结果是: 对于替换和拆分使用正则并不麻烦,最麻烦的是进行字符串的结构验证; 范例:判断某一个字符串是否是消失

    51220

    Java正则学习笔记

    正则 一、理论 所有的开发中百分百都会使用,不会用复杂的,一般几种情况下使用:验证、拆分、替换; 理论很简单,这里都懒得说了,也没有什么好说的,正则比较普通方法用起来快,比较简化。...注意:以下的两个\表示一个\ \d :表示任意一位数字,等价于[0-9], 例如(差不多) 这样是true,要是str=“a”,就是false了 \D :取反(\d)的反义词,表示任意一位非数字...这个是true \s :表示任一空格,可能是\n或\t \S :取反(\s)的反义词,表示非空格 4.边界匹配(一般java很少用,javaScript会用到) 如: ^ :表示正则匹配的开始...: 正则的原理就是离散型数学,我也没有学会。...范例:进行拆分 按照数字拆分,有些说写[0-9] 可是结果: 所以要这么写: //一般不会这么写,应该是: 结果是: 对于替换和拆分使用正则并不麻烦,最麻烦的是进行字符串的结构验证; 范例:判断某一个字符串是否是消失

    83420

    分布式架构那些事儿

    而事实上,之前的经典架构,如垂直应用和SOA等,在实现系统拆分和降低耦合方面也有它们独特的优势。 我们不能说微服务是唯一的正确选择,每个架构都有自己适合的应用场景。...因此,越来越多的企业开始意识到转型数字化务必要“请”得动云上那位貌美“如菜”的老板娘。 现在我们再来看看竞技场上比拼得如何。...跟着我一起探索这个神秘的世界! 首先,我们得搞清楚分布式架构到底是啥?简而言之,就是将一个大型系统拆分成多个小型子系统,在保持每个子系统功能完整的基础上融合在一起完成任务。...如RabbitMQ、Kafka等工具都是大厂数量级应用的首选。消息队列在应对高并发和服务解耦方面有着得天独厚的优势。 嘿!别以为我们快要结束了,还有一个非常重要的环节 —— 容错处理。...那么问题来了——“战斗民族”的支付宝是如何在众多应用中独占鳌头呢?关键就在于它独家秘笈:多维度拆分策略!支付宝通过横向和纵向两个方向进行拆分。

    37610

    Spring事务失效的 8 大原因,这次可以吊打面试官了!

    (看往期吊打系列请在后台回复:吊打,我会陆续更新……) 前几天栈长不是发了一篇文章,里面有一个关于事务失效的问题: 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?...但是我觉得还是总结得不够全,今天栈长我再总结一下,再延着这位粉丝的总结再补充完善一下,不用说,我肯定也不见得总结全,但希望可以帮忙有需要的人。...大概意思就是 @Transactional 只能用于 public 的方法上,否则事务不会失效,如果要用在非 public 方法上,可以开启 AspectJ 代理模式。...这两个例子的答案是:不管用! 因为它们发生了自身调用,就调该类自己的方法,而没有经过 Spring 的代理类,默认只有在外部调用事务才会生效,这也是老生常谈的经典问题了。...因为默认回滚的是:RuntimeException,如果你想触发其他异常的回滚,需要在注解上配置一下,如: @Transactional(rollbackFor = Exception.class)

    1K21

    公司算法面试笔试题目集锦,个人整理,不断更新中

    3、如何从已存在的特征中导出新的特征? 4、如果你试图预测客户的性别,但只有 100 个数据点,可能会出现什么问题? 5、在拥有两年交易历史的情况下,哪些特征可以用来预测信用风险?...统计和概率问题 谷歌 1、假设我是一名非技术人员,请向我解释一下交叉验证(Cross-validation)。 2、请描述一下非正态概率分布,随后告诉我们它该如何应用?...2、请问如何在一个巨大的数据集中找到中值? Uber 1、(对数据工程师)编写一个函数用来计算给定数字的平方根(2 个小数点精度)。随后:避免冗余计算,现在使用缓存机制优化你的功能。...4、如果你有一个输入的数字流,如何在运行过程中找到最频繁出现的数字? 5、编写一个函数,将一个数字增加到另一个数字,就像 pow()函数一样。...6、将大字符串拆分成有效字段并将它们存储在 dictionary 中。如果字符串不能拆分,返回 false。你的解决方案的复杂性如何?

    2.2K30
    领券