【问题标题】:How to get src with gsub?(how to extract something in the pattern?)如何使用 gsub 获取 src?(如何提取模式中的内容?)
【发布时间】:2019-09-03 03:17:17
【问题描述】:

我想在 text+tag 字符串中提取 src。例如,如果文本是

hello <img src='address1'> hello2 <img src='address2'>hello3

我想用gsub提取address1address2

如果我这样编码:

text = "hello <img src='address1'> hello2 <img src='address2'>hello3"
temp = text.gsub(/.*<img src=/,'').gsub(/>.*/,'')

我只能得到address2(我的意思是最后一个地址)。我想提取address1address2,然后分别检查我的数据库。

【问题讨论】:

  • StackOverflow 允许您在发布之前预览您的问题。除非您将 HTML 标记放在代码块中,否则 StackOverflow 不会呈现它们,因此看起来您只有一个字符串“hello hello2 hello3”,并期望得到输出“address1 address2”,这非常令人困惑。我编辑了你的帖子,所以现在有意义。请始终尝试让人们尽可能轻松地帮助您成功 - 预览您的问题以查看它们是否正确并使用像代码块这样的良好格式将对此有所帮助。
  • 几个问题:你是什么意思“每个都检查我的数据库”?还有gsub是用来替换子串的,但是你说要提取子串。你到底想要什么结果?你说你想要address1address2。这是否意味着您想要一个由这两个字符串组成的数组? gsub 不会返回任何内容的数组,它只会返回字符串的修改版本。

标签: ruby gsub


【解决方案1】:
str = "hello <img src='address1'> hello2 <img src='address2'>hello3" 

str.scan(/(?<=<img src=')[\w ]+/)
  #=> ["address1", "address2"]

String#scan。正则表达式的内容是,“匹配一个或多个单词字符(英文字母、数字和下划线)或空格,前面紧跟字符串 "&lt;img src='", (?&lt;=&lt;img src=') 是一个肯定的后视。 p>

【讨论】:

  • 我很感激。我用拆分和数组解决了这个问题,但我会尝试这种扫描方法。
猜你喜欢
  • 1970-01-01
  • 2020-03-20
  • 2020-12-14
  • 1970-01-01
  • 2016-06-03
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多