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中是什么样子。这一切都准备好了吗?我应该把它作为一个答案吗?