regex - 如果一行有特殊前缀,如何忽略正则表达式匹配?

我在 Perl 中使用这个正则表达式来匹配和替换以下表达式:

  • _HI2_
  • _HI_2
  • HI2_
  • _HI_2

    if ($subject =~ m/_?HI2?_?|HI2?_?/) {
        # Successful match
    } else {
        # Match attempt failed
    }
    

不过我也想这样做:

The text is:   ABCDEMAFGHIJ

这是一个 HI 序列,但必须忽略,因为如果您向左看,您会看到该行以 The text is: 开头。

The text is:   ABCDEHI2FGHI

如上,这里有两个HI序列。

我怎样才能在这个正则表达式中构建一个匹配项并因为行前缀而忽略它?

最佳答案

为什么不匹配两次呢? 如果 $subject 不匹配/^The text is:/,运行替换..

https://stackoverflow.com/questions/6305454/

相关文章:

winforms - 更新 ClickOnce 应用程序

python - 脂肪 : can't figure out the architecture ty

php - PHP 中的静态类是不好的做法吗?

python - 如何使用 tripit API 制作独立工具?

svn - 对于 SVN/Tortoisesvn,如何只显示文件夹属性的日志,即不显示文件夹的内容?

makefile - 规范 'simple project' 生成文件

sql - 死锁:插入与从多个表中选择。快照隔离?

.net - 在 .NET 中存储加密/解密 key

facebook - 如何在 Facebook 上为我的应用程序上传没有黑色颗粒状边框的图标?

visual-studio-2010 - 在 Visual Studio 中自动终止 "Stop D