gpt4 book ai didi

ruby - 如何在 ruby​​ 的正则表达式中执行此操作?

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:17 24 4
gpt4 key购买 nike

字符串的格式是以下任何一种......语言是ruby

#word > subcategory
#word word > sub / category
#word > sub category
#word word > subcategory

我只想匹配“word”或“word word”(两个带空格的单词)

到目前为止我有这个但它与空间不匹配

scan(/#([^ ]*)/)[0]

此外,对于第二个,它似乎有效,但某些短语不匹配,即使它们是相同的。我不知道为什么。以下内容有问题吗? (这是为了匹配“subcategory”或“sub category”

scan(/.* > (.*)$/)[0]

第一部分只有字母,第二部分可以有任意数量的空格、单词、字符如/或 _

最佳答案

试试这个:

^#([^>]*)

[^>]* 将匹配任何内容,直到第一个 >(或文本结尾)。
^ 并不是真正需要的,但它可以防止您犯错(例如,如果类别包含另一个井号)

工作示例:http://rubular.com/r/LO6T9AV3rp

请注意,您可以在同一个匹配项中同时匹配单词和类别,例如,使用模式:

^#([^>]*)>(.*)$

您可以捕获这两个组并使用它们:

s = "#word word > sub / category"
m = s.scan(/^#([^>]*)>(.*)$/)
puts m[0]
puts m[1]

工作示例:http://ideone.com/SPlvm

关于ruby - 如何在 ruby​​ 的正则表达式中执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com