我来啦:
我正在编写一个 PHP 应用程序,并且我有一个新的官方域,现在所有常见问题解答都位于该域中。我脚本中的一些文件包含指向旧常见问题解答域的帮助链接,因此我想使用新域替换它们。但是,我只想保留链接到旧域的 URL,前提是它们位于评论或评论块下(我仍然使用旧域进行自我参考和其他文档)。
所以,基本上,我想要实现的是一个正则表达式,它可以在以下条件下工作:
- 匹配所有行中出现的
example.com
所有 *。 - 不要匹配整行,只匹配
example.com
字符串。 - 如果该行以
//
、/*
或“ *”开头,则与该单行中的任何实例都不匹配example.com
(尽管,如果注释块在打开它的同一行中关闭,这可能是一个问题)。
- 如果该行以
我通常这样写我的块评论:
/* text
* blah
* blah
*/
这就是为什么我不想匹配位于 、 或“ *”之后的“example.com //
” /*
。
我想它会是这样的:
^(?:(?!//|/\*|\s\*).?).*example\.com
但这有一个问题:它匹配整行,而不仅仅是“example.com”(这主要是当两个或多个“example.com”字符串在一行中匹配时会导致问题)。
有人可以帮我修复我的正则表达式吗?请注意:它不必是 PHP 正则表达式,因为我总是可以使用像 grepWin 这样的工具来一次在本地编辑所有文件。
哦,如果有办法以某种方式概括块评论,请告诉我,比如:一旦找到,在找到之前/*
不匹配。那将非常有用。example.com
*/
是否可以在一般(非语言相关)正则表达式中实现它?