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

Ruby 在字母和数字字符之间插入空格,ruby,Ruby,我有一个字符串列表,格式类似于“8pm9pm8pm7pm-10pm”,需要在“pm”之后插入空格。我希望它能返回如下内容: [8pm, 9pm, 8pm, 7pm-10pm] 我该怎么做呢?这个正则表达式Kayla呢/((?:\+\124;-)?\ d*(?:am | pm))/i 我们注意: 如果数字有符号,则可以(但我们忽略与?:的分组匹配) 任意位数 am或pm,我们忽略与?: 不区分大小写,正则表达式的i选项 r=/ (?[“8pm”、“9pm”、“8pm”、“7pm-10pm”]

我有一个字符串列表,格式类似于
“8pm9pm8pm7pm-10pm”
,需要在
“pm”
之后插入空格。我希望它能返回如下内容:

[8pm, 9pm, 8pm, 7pm-10pm]

我该怎么做呢?

这个正则表达式Kayla呢<代码>/((?:\+\124;-)?\ d*(?:am | pm))/i

我们注意:

  • 如果数字有符号,则可以(但我们忽略与
    ?:
    的分组匹配)
  • 任意位数
  • am或pm,我们忽略与
    ?:
  • 不区分大小写,正则表达式的i选项
r=/
(?[“8pm”、“9pm”、“8pm”、“7pm-10pm”]
以常规(非自由间距模式)方式表示,正则表达式如下所示

r = /(?<=\d[ap]m)(?=\d)/

r=/(?这里真的需要正则表达式吗?如果不需要,字符串方法是另一个选项:

"8pm9pm8pm7pm-10pm8AM".gsub("pm", "pm ").gsub(" -", "-") #=> "8pm 9pm 8pm 7pm-10pm 8AM"
给你想要的字符串,或者

"8pm9pm8pm7pm-10pm8AM".gsub("pm", "pm ").gsub(" -", "-").split(" ") #=> ["8pm", "9pm", "8pm", "7pm-10pm", "8AM"]

如果您确实希望将其作为字符串数组。

在每个“pm”之后插入空格将导致
“8pm 9pm 8pm 7pm-10pm”
(字符串)。您的预期返回值看起来更像一个数组。您遇到了什么问题?您的代码遇到了什么问题?您收到了错误消息吗?错误消息是什么?您得到的结果不是您期望的结果吗?您期望的结果是什么?为什么?您得到的结果是什么?这两种情况如何不同?你观察到的行为不是期望的行为吗?期望的行为是什么,为什么,观察到的行为是什么,它们以什么方式不同?请提供一个。你能提供你想要发生的事情的精确说明吗,包括任何和所有规则,这些规则的例外,角落案例,特殊的cASE、边界情况和边缘情况?您能否提供示例输入和输出,说明您在正常情况下以及在所有例外情况下、角落情况、特殊情况、边界情况和边缘情况下预期会发生什么?请同时提供一个“不确定如何进行此操作”–你可以通过编写一个程序来实现这一点。如果你的程序有问题,请仔细阅读你正在使用的所有方法、类、模块和库的文档,为你的程序编写测试,用笔和纸跟踪执行情况,在调试器中单步执行,然后休眠,从头开始,斯莱伊p再重复一遍,然后只在上面问一个集中的、狭窄的问题。你可以用正则表达式使用scan:
str.scan(/\d+[ap]m(?:-\d+[ap]m)?/)
"8pm9pm8pm7pm-10pm8AM".gsub("pm", "pm ").gsub(" -", "-") #=> "8pm 9pm 8pm 7pm-10pm 8AM"
"8pm9pm8pm7pm-10pm8AM".gsub("pm", "pm ").gsub(" -", "-").split(" ") #=> ["8pm", "9pm", "8pm", "7pm-10pm", "8AM"]