我对Ruby完全陌生,所以我只是想知道是否有人可以帮助我。
我有以下字符串:
"<planKey><key>OR-J8U</key></planKey>"
为了获得中心部分OR-J8U,我必须编写什么样的正则表达式?
答案 0 :(得分:2)
使用以下内容:
str = "<planKey><key>OR-J8U</key></planKey>"
str[/(?<=\<key\>).*(?=\<\/key\>)/]
#=> "OR-J8U"
使用lookahead和lookbehinds
捕获打开和关闭'key'标签之间的任何内容答案 1 :(得分:1)
如果你想获得字符串OR-J8U
,那么你可以在正则表达式中使用该字符串;必须转义-
字符:
/OR\-J8U/
但是,我相信你想要<planKey><key>
和</key></planKey>
中包含的任何字符串。在这种情况下,如果您允许空字符串,则ice的答案很有用:
/(?<=\<key\>).*(?=\<\/key\>)/
如果您不允许空字符串,请将*
替换为+
:
/(?<=\<key\>).*(?=\<\/key\>)/
如果您更喜欢更通用的方法(任何标签中包含的任何字符串),那么我认为常见的意见不是使用正则表达式。而是考虑使用HTML解析器。在这方面你可以找到一些问题和答案。