Ruby on rails RubyonRails上的字符串正则表达式

Ruby on rails RubyonRails上的字符串正则表达式,ruby-on-rails,regex,Ruby On Rails,Regex,如何确保我的字符串格式必须如下所示: locker_number=3,email=ucup@gmail.com,mobile_phone=091332771331,firstname=ucup 我想要我的字符串格式`“key=value,” 如何在ruby上为check my string生成正则表达式?您可以使用如下正则表达式: \w+=.*?(,|$) 您可以使用以下代码: "<your string>" =~ /\w+=.*?(,|$)/ “”=~/\w+=.*(,|$

如何确保我的字符串格式必须如下所示:

locker_number=3,email=ucup@gmail.com,mobile_phone=091332771331,firstname=ucup
我想要我的字符串格式`“key=value,”


如何在ruby上为check my string生成正则表达式?

您可以使用如下正则表达式:

\w+=.*?(,|$)

您可以使用以下代码:

"<your string>" =~ /\w+=.*?(,|$)/
“”=~/\w+=.*(,|$)/

像这样的东西怎么样?它对最后一个元素不以、、结尾很挑剔,。但它并没有强制要求在键中不使用逗号或在值中不使用等号

'locker_number=3,email=ucup@gmail.com,mobile_phone=091332771331,firstname=ucup' =~ /^([^=]+=[^,]+,)*([^=]+=[^,]+)$/

这个正则表达式会找到你想要的

\w+=.*?(,|$)
如果要捕获每个配对,请使用

(\w+)=(.*?)(?:,|$)

\w+
是字符a-z、1-9或下划线的一个或多个匹配项。在第一个
或字符串结尾(
$
)之前,
*?
就是一切。管道是
,而
?:
告诉regex no捕获表达式的该部分

根据您的评论,它将在Ruby中使用

(/\w+=.*?(,|$)/ =~ my_string) == 0

我想应该是
\w+=.*(,|$)
之类的。我不知道用Ruby怎么写。正则表达式很简单,但是这个字符串是从哪里来的,看起来应该是一个hashYeah,对于这类东西使用可靠的数据格式是值得的,比如JSON。否则,您将不得不处理一些愚蠢的场景,如键或值中的等号或逗号。您对@chris85的理解正确,感谢ruby中的正则表达式:(/\w+=.*?(,|$)/=~my_string)==0谢谢,我不确定这在ruby中是什么样子。这一切都准备好了吗?我应该把它作为一个答案吗?