【发布时间】:2018-06-15 21:10:37
【问题描述】:
从一个字符串:
"(book(1:3000))"
我需要排除左括号和右括号并匹配:
"book(1:3000)"
使用正则表达式。
我试过这个正则表达式:
/([^',()]+)|'([^']*)'/
检测除括号外的所有字符和整数。此正则表达式检测到的字符串是:
"book 1:3000"
是否有任何正则表达式忽略左括号和右括号,并给出整个字符串?
【问题讨论】:
-
为什么这个标签是ruby-on-rails?
-
@Amadan 希望 Rails 提供一些魔力,比如专门的方法可以做到这一点?
-
如果你能提供一些 context 可能会有所帮助。例如,那个字符串代表什么,它来自哪里,
book(...)是什么(看起来像一个函数调用),1:3000是什么,你想要匹配的模式是什么(解释它或展示一些例子) , 你感兴趣的子字符串周围总是有一对额外的括号吗? -
如果您的数据始终如一,您可以使用
new_str = str[1..-2]或new_str = str.start_with?('(') ? str[1..-2] : str而不是正则表达式黑魔法。