【问题标题】:Using a ruby regular expression使用 ruby​​ 正则表达式
【发布时间】:2017-09-24 12:40:07
【问题描述】:

我对 Ruby 完全陌生,所以我只是想知道是否有人可以帮助我。

我有以下字符串:

"<planKey><key>OR-J8U</key></planKey>"

要获得中心部分 OR-J8U,我必须编写什么正则表达式?

【问题讨论】:

标签: ruby regex


【解决方案1】:

使用以下内容:

str = "<planKey><key>OR-J8U</key></planKey>"
str[/(?<=\<key\>).*(?=\<\/key\>)/]
 #=> "OR-J8U" 

这使用前瞻和后视捕获打开和关闭“关键”标签之间的任何内容

【讨论】:

    【解决方案2】:

    如果您想获取字符串OR-J8U,那么您可以简单地在正则表达式中使用该字符串; - 字符必须被转义:

    /OR\-J8U/
    

    不过,我相信您想要包含在 &lt;planKey&gt;&lt;key&gt;&lt;/key&gt;&lt;/planKey&gt; 中的任何字符串。在这种情况下,如果您允许空字符串,ice 的答案很有用:

    /(?<=\<key\>).*(?=\<\/key\>)/
    

    如果您不允许空字符串,请将@​​987654327@ 替换为+

    /(?<=\<key\>).*(?=\<\/key\>)/
    

    如果您更喜欢更通用的方法(任何标签中包含的任何字符串),那么我相信普遍的观点是不要使用正则表达式。而是考虑使用 HTML 解析器。在 SO 上,您可以找到一些这方面的问题和答案。

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多