条件表达式的Ruby正则表达式

条件表达式的Ruby正则表达式,ruby,regex,conditional-statements,Ruby,Regex,Conditional Statements,我需要为以下表达式行编写正则表达式: constraint :name, 'name != nil' constraint :name, 'name =~/^[A-Z]/' constraint :age, 'age >= 0' 一行始终包含单词“constraint:”,任何单词都可以位于“:”之后,后跟“,” 然后,条件表达式将出现在“”中 我写过这样的正则表达式: /^constraint :(\w*),'(.*)'$/ 而且不匹配。我不熟悉Ruby和正则表达式。谁能帮帮我吗?你

我需要为以下表达式行编写正则表达式:

constraint :name, 'name != nil'
constraint :name, 'name =~/^[A-Z]/'
constraint :age, 'age >= 0'
一行始终包含单词“constraint:”,任何单词都可以位于“:”之后,后跟“,”

然后,条件表达式将出现在“”中

我写过这样的正则表达式:

/^constraint :(\w*),'(.*)'$/

而且不匹配。我不熟悉Ruby和正则表达式。谁能帮帮我吗?

你忘了逗号后面的空格。 请尝试
/^constraint:(\w*),'(.*)$/


尽管更一般地说,我还是要说:
/^constraint:([^,]+),\s*'(.*)$/

可以包含单引号吗?你在走下坡路。最终的目的是什么?这是一行中的单引号。这些行在我的作业中给出。我必须能够提取这些行中的内容,以便能够动态创建新类并添加具有给定约束的属性。@DaveNewton在任何情况下,约束的名称都不能包含单引号,约束值也不能包含新行。。。在这种情况下,
'.*$
应该会捕获它。感谢您的帮助!我在问约束本身,带正则表达式的字符串,是否可以包含一个引号。我仍然不太明白这个练习的目的这看起来更像是元编程中的练习,而不是使用正则表达式。实际上,在阅读了Dave Newton的评论后,我认为使用
/^constraint:([^,]+),\s*(.*)$/