Regex类似于解析函数参数,例如foo(var,bar)和在Ruby中获取var
如果我有一个字符串,看起来像“TEST(10,20,30)”,我怎么能从这个字符串中拉出10呢 我试过了Regex类似于解析函数参数,例如foo(var,bar)和在Ruby中获取var,ruby,regex,Ruby,Regex,如果我有一个字符串,看起来像“TEST(10,20,30)”,我怎么能从这个字符串中拉出10呢 我试过了 /\(([^\)]+)\)/ 这就得到了括号的内部,但是当我尝试添加逗号时,例如 /\(([^\),]+)\)/ 然后没有匹配项。这是因为您需要告诉正则表达式也匹配逗号和右括号之间的内容(或者不匹配): 或 正如您所见,您也不需要在字符类中转义括号。这是因为您需要告诉正则表达式也要匹配逗号和右括号之间的内容(或者省略): 或 正如您所看到的,您也不需要在字符类中转义括号。希望这可以指导您
/\(([^\)]+)\)/
这就得到了括号的内部,但是当我尝试添加逗号时,例如
/\(([^\),]+)\)/
然后没有匹配项。这是因为您需要告诉正则表达式也匹配逗号和右括号之间的内容(或者不匹配): 或
正如您所见,您也不需要在字符类中转义括号。这是因为您需要告诉正则表达式也要匹配逗号和右括号之间的内容(或者省略): 或
正如您所看到的,您也不需要在字符类中转义括号。希望这可以指导您正确的方向:
irb(main):001:0> str = "TEST(10,20,30)"
=> "TEST(10,20,30)"
irb(main):002:0> str =~ /\w+\(([^,]+),.+\)/
=> 0
irb(main):003:0> $~[1]
=> "10"
正则表达式执行以下操作:\w+
一个或多个单词字符(“测试”)
([^,]+)
对于任何不是逗号的对象,这将匹配从左偏旁到逗号的所有对象
正则表达式的其余部分忽略了其他参数,但可以对其进行修改,以将它们包含在单独的组中。希望这可以指导您正确的方向:
irb(main):001:0> str = "TEST(10,20,30)"
=> "TEST(10,20,30)"
irb(main):002:0> str =~ /\w+\(([^,]+),.+\)/
=> 0
irb(main):003:0> $~[1]
=> "10"
正则表达式执行以下操作:\w+
一个或多个单词字符(“测试”)
([^,]+)
对于任何不是逗号的对象,这将匹配从左偏旁到逗号的所有对象
正则表达式的其余部分忽略了其他参数,但可以对其进行修改,以将它们包含在单独的组中。在这种情况下,要拾取的零件的模式比要丢弃的零件的模式简单得多
"TEST(10,20,30)"[/\d+/] # => 10
在这种情况下,要拾取的零件的模式比要丢弃的零件的模式简单得多
"TEST(10,20,30)"[/\d+/] # => 10
我怎么能从这根绳子上拔出10个呢
使用lookahead
和lookahead
(?<=\()\d+(?=,)
(?
我怎么能从这根绳子上拔出10个呢
使用lookahead
和lookahead
(?<=\()\d+(?=,)
(?我想你把它复杂了一点;)我只是尽量接近原始尝试,让它更容易理解。但是,是的,有更好的解决方案;)我想你把它复杂了一点;)我只是尽量接近原始尝试,让它更容易理解。但是,是的,有更好的解决方案;)