首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Ruby中在字母和数字之间插入空格

在Ruby中在字母和数字之间插入空格
EN

Stack Overflow用户
提问于 2017-04-12 06:25:59
回答 4查看 1.3K关注 0票数 1

我正在整理地址列表,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
New york city23 b
Miami 355c

我需要他们看起来像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
New York City 23 B
Miami 355 C

问题是在letter+number组合之前和之后添加空间。我想出了下面的准则来强调问题所在:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/\p{L}\d|\d\p{L}/

但我错过了在这两者之间留出空间的逻辑。现在,代码看起来就像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"moscow city46 d".titleize.gsub(/\p{L}\d|\d\p{L}/, ' \0')
# titleize is a Rails method

哪种输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Moscow Cit y46 D
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-04-12 06:37:26

既然您使用了titleize,那么我假设您不介意使用其他ActiveSupport方法。它并不像一些人那样“聪明”,但是String#squish用一个空格替换了连续空格的运行,它提供了一个非常简单的解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
str.gsub(/\d+/, ' \0 ').squish.titleize

Ruby (sans Rails)有一个类似的String#squeeze方法,但与squish不同的是,它不会修剪前导和尾随空格,因此必须与String#strip结合。

票数 5
EN

Stack Overflow用户

发布于 2017-04-12 06:30:26

使用查找器并用单个空格替换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.gsub(/(?<=\p{L})(?=\d)|(?<=\d)(?=\p{L})/, ' ')

(?<=\p{L})(?=\d)|(?<=\d)(?=\p{L})正则表达式将匹配两个位置:

  • (?<=\p{L})(?=\d) -字母和数字之间的位置
  • | -或
  • (?<=\d)(?=\p{L}) -数字和字母之间的位置。

因此,空格将被“插入”在数字或字母之间。

票数 5
EN

Stack Overflow用户

发布于 2017-04-12 06:30:38

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'New york city23 b'.scan(/\D+|\d+/).flat_map(&:split).map(&:capitalize).join(' ')
  # => "New York City 23 B"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43372399

复制
相关文章
RabbitMQ消息发送、消费和确认
前一篇文章介绍到RabbitMQ相关组件的声明,组件声明完成之后,就可以发送消息和消费消息,消费消息的时候需要考虑消息的确认。
Throwable
2020/06/23
4.5K0
chrome console发送post
var url = "http://127.0.0.1:9090/index.php/a/create";
随心助手
2021/03/23
1.8K0
RxJava的消息发送和线程切换
RxJava相信大家都非常了解吧,今天分享一下RxJava的消息发送和线程源码的分析。最后并分享一个相关demo,让大家更加熟悉我们天天都在用的框架。
HelloJack
2018/12/05
8440
RxJava的消息发送和线程切换
图解RocketMQ消息发送和存储流程
基本概念 参考官网文档 整体架构 Producer:生产者 Consumer:消费者 Broker:负责消息存储、投递、查询 NameServer:路由注册中心。功能包括:Broker管理、路由信息管
kinnylee
2020/10/15
3K0
图解RocketMQ消息发送和存储流程
发送和接收IBM WebSphere MQ消息
InterSystems IRIS为IBM WebSphere MQ提供了一个接口,可以使用该接口在InterSystems IRIS和IBM WebSphere MQ的消息队列之间交换消息。要使用此接口,必须能够访问IBM WebSphere MQ服务器,并且IBM WebSphere MQ客户端必须与InterSystems IRIS在同一台计算机上运行。
用户7741497
2022/07/04
2.9K0
RabbitMq消息发送
如果要发送一个消息,可以使用channel类的basicPublish方法参考如下,其中在rabbitmqTemplate中封装的方式是:
写一点笔记
2022/08/11
8700
RabbitMq消息发送
python定时任务demo,实现工作日发送群消息
# _*_ coding:utf_8 _*_ import requests import json import schedule import time import datetime num=[
JQ实验室
2022/02/17
2970
udp发送广播消息
import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置socket选项, 开启发送广播消息的功能 # 1. SOL_SOCKET:当前socket # 2. SO_BROADCAST: 广播选项 # 3. True:开启发送广播消息功能 udp_socket.set
汪凡
2019/03/01
2.7K0
环信WebIM 发送图片消息和显示图片 发送文件和显示文件 发送表情和显示表情
调试了发送文本,表情,图片,文件,和音频消息 视频消息由于SDK有问题,无法调通
拿我格子衫来
2022/01/24
1.4K0
环信WebIM 发送图片消息和显示图片 发送文件和显示文件  发送表情和显示表情
RabbitMQ延迟消息发送
典型的场景有微信、支付宝等第三方支付回调接口,会在用户支付后3秒、5秒、30秒等等时间后向应用服务器发送回调请求,确保应用服务器可以正确收到消息。
兜兜毛毛
2019/10/23
2.7K0
RabbitMQ延迟消息发送
【RocketMQ】发送事务消息
事务消息:提供类似XA或Open XA的分布式事务功能,通过事务消息能达到分布式事务的最终一致。
凯哥Java
2022/12/16
1.2K0
【RocketMQ】发送事务消息
环信发送消息
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!
收心
2022/01/19
1.2K0
消息中间件—RocketMQ消息发送
摘要:使用客户端发送一条消息很Easy,在这背后RocketMQ完成了怎么样的操作呢? 大道至简,消息队列可以简单概括为:“一发一存一收”,在这三个过程中消息发送最为简单,也比较容易入手,适合初中阶童鞋作为MQ研究和学习的切入点。因此,本篇主要从一条消息发送为切入点,详细阐述在RocketMQ这款分布式消息队列中发送一条普通消息的大致流程和细节。在阅读本篇之前希望读者能够先仔细读下关于RocketMQ分布式消息队列Remoting通信模块的两篇文章: (1)消息中间件—RocketMQ的RPC通信(一) (2)消息中间件—RocketMQ的RPC通信(二)
用户2991389
2018/09/05
2.4K0
消息中间件—RocketMQ消息发送
Vue计算属性和侦听器
模板内的表达式非常便利,但放入太多的逻辑会让模板过重且难以维护,所以,对于复杂的逻辑,可以使用计算属性 computed。
Leophen
2019/08/23
6710
Go语言服务端消息接收和发送
上面代码的问题是服务器获取到客户端对象后,如果客户端什么也没有输入,其他客户端无法连接.可以通过结合goroutine完成并发访问
IT工作者
2022/04/01
1.2K0
启动kafka服务并用golang发送和接受消息
kafka系列分为两个篇幅,分别是实用篇,讲使用命令和一些使用中会遇到的概念名词,理论篇,讲kafka为了实现高可用和高性能做了哪些努力。这篇我们从搭建开始,然后用kafka脚本去发送和接受信息,最后用go语言展示在代码之中怎么使用。
用户7962184
2020/11/20
2.9K0
第六十五期:简述Chrome DevTool 调试Node 的基本原理
执行命令后,打开浏览器,并导航到 chrome://inspect界面,我们就可以对我们的Nodejs项目进行调试。
terrence386
2022/07/15
1.1K0
第六十五期:简述Chrome DevTool 调试Node 的基本原理
利用飞书BOT发送消息
标题:利用飞书BOT发送消息 作者:cuijianzhe 地址:https://solo.cjzshilong.cn/articles/2020/02/20/1582192919773.html
cuijianzhe
2022/06/14
1.2K0
利用飞书BOT发送消息
kafka学习二 -发送消息
从源码中我们发现在Sender的run方法中,并没有涉及到append追加操作。因此可以看到源码中,如果消息收集器中的消息收集结果为空或者新的消息批次已经创建好,进行sender唤醒,执行wakeup操作的,唤醒Sender线程的。因此可以看到核心代码就是append和sender线程唤醒启动,最终将发送的结果进行返回:
路行的亚洲
2020/09/29
2.3K0
kafka学习二 -发送消息
Python之Rabbitmq发送消息
Rabbitmq是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
Wu_Candy
2022/07/04
1.1K0
Python之Rabbitmq发送消息

相似问题

Chrome扩展- webRequest侦听器不工作

10

PHPMailer不工作:无法发送消息

70

动态队列和侦听器,消息没有发送?

13

Chrome扩展:处理多个消息侦听器

14

Chrome Javascript和框架不工作

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文