douqu2481 2014-10-21 18:24
浏览 43

去正则表达式以匹配字符之间

I have content I am trying to remove from a string

s:=`Hello! <something>My friend</something>this is some <b>content</b>.`

I want to be able to replace <b>content</b> and <something>My friend</something> so that the string is then

`Hello! this is some .`

So basically, I want to be able to remove anything between <.*>

But the problem is that the regex matches <something>My friend</something> this is some <b>content</b> because golang is matching the first < to the very last >

  • 写回答

2条回答 默认 最新

  • douchuose2514 2014-10-21 18:27
    关注

    Go's regexp doesn't have backtracking so you can't use <(.*?)>.*?</\1> like you would do in perl.

    However if you don't care if the closing tag matches you can use:

    <.*?/.*?>
    

    Just saw your update, .* is a greedy operator, it will match everything in between, you have to use non-greedy matching (aka .*?).

    <kbd>play</kbd>

    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口