首页
学习
活动
专区
工具
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分钟内告诉周六有多少节课?...下面我会给大家介绍一些非常简单原则: 一列只有一个类型信息 :性别和年龄是两个类型信息,不应把这两个信息写在同一列中。

    29620

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

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

    5.6K30

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

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

    1.8K30

    随机数与区块链

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

    80510

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

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

    7.8K10

    手撕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,表示没有匹配成功。

    12110

    Java正则表达式学习笔记

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

    51020

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

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

    1.8K10

    Java正则学习笔记

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

    83220

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

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

    80220

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

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

    2.7K30

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

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

    99821

    分布式架构那些事儿

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

    35810

    excel常用操作大全

    如果菜单中未显示最近使用文件名,请取消“最近使用文件列表”前复选框。 3.在EXCEL中输入“1-1”和“1-2”等格式后,将成为日期格式,1月1日和1月2日。该怎么办?...此时,您所有操作都针对所有工作表,无论是设置页眉和页脚还是打印工作表。6.在Excel2000制作工资表中,只有第一个人有工资表表头(编号、姓名、岗位工资.),并希望以工资单形式输出它。...14.如何在屏幕扩大工作空间? 从“视图”菜单中,选择“全屏”命令。 15.如何使用快捷菜单?弹出菜单包括一些最常用命令,可以大大提高操作效率。...19.如何在表单中添加斜线? 一般来说,我们习惯在表单使用斜线,但是工作表本身不提供这个功能。事实,我们可以使用绘图工具来实现: 点击“绘图”按钮,选择“直线”,鼠标将变成一个十字。...方法是单击主菜单“窗口”或“拆分窗口”。除了使用“窗口”\“展开窗口”命令外,取消拆分窗口还有一些快捷方式:将鼠标指针放在水平分割线或垂直分割线或双拆分交点,双击鼠标取消拆分窗口。

    19.2K10

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

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

    2.2K30
    领券