我是红宝石的新手,我想知道我是否只能使用一行来完成这项工作.
以此网站的"搜索"为例.当用户输入时[ruby] regex,我可以使用以下代码来获取标记和关键字
'[ruby] regex' =~ /\[(.*?)\](.*)/
tag, keyword = $1, $2
Run Code Online (Sandbox Code Playgroud)
我们可以把它写成一行吗?
UPDATE
非常感谢!我可以更难,更有趣的是,输入可能包含多个标签,例如:
[ruby] [regex] [rails] one line
Run Code Online (Sandbox Code Playgroud)
是否可以使用一行代码来获取tags数组和关键字?我试过了,但都失败了.
有没有办法从正在使用量词的正则表达式中获取多个捕获组?例如,假设我有这些数据(简化了我必须处理的内容):
<td>Data 1</td>
<td>data 2</td>
<td>data 3</td>
<td>data 4</td>
Run Code Online (Sandbox Code Playgroud)
现在,如果我写这样的正则表达式:
(?:<td>(.+?)<\/td>\s*){4}
Run Code Online (Sandbox Code Playgroud)
我最终只有一个捕获组,最后一个是"数据4".有没有办法使用量词并最终得到4个捕获组,或者我被迫写这样的正则表达式来得到我想要的东西:
<td>(.+?)<\/td>\s*<td>(.+?)<\/td>\s*<td>(.+?)<\/td>\s*<td>(.+?)<\/td>
Run Code Online (Sandbox Code Playgroud)
是的,我很清楚我可以通过编程方式更容易地破解这个简单的例子然后应用和必要的正则表达式或更简单的模式匹配.我正在使用的数据要复杂得多,我真的想使用正则表达式来处理所有的解析.
响应:正则表达式查找包含在两个字符之间的字符串,同时排除分隔符
嗨,我正在寻找适用于我的字符串的正则表达式模式,包括括号:
[1,2,3,4,5] [abc,ef,g] [0,2,4b,y7]
可以是包括单词,数字,非单词在一起或分开的任何内容.
我希望得到括号之间的组,\[(.*?)\]
但是什么是正则表达式模式,它将给我括号和子组字符串之间用逗号分隔的组,以便结果可能跟随?
Group1 : 1,2,3,4,5 Group1: 1 Group2: 2 Group3: 3 Group4: 4 Group5: 5 Group2 : abc,ef,g Group1: abc Group2: ef Group3: g etc ..
谢谢您的帮助