0

我有这个正则表达式:[A-Z][A-Z] \d\d

我想用它来替换与空格(或任何其他字符)不匹配的所有内容。我怎样才能做到这一点?我否定字符类在这种情况下不起作用,因为正则表达式本身有 2 个字符类。

字符串的一小部分如下所示:

<div class=""></div>CL 17 </a><br>

只有 CL 17 应该保留,其余的应该是空白的。

注意:我注意到这似乎很复杂,所以我通过编写一个小的 PHP 脚本来解决它,该脚本获取匹配列表 (preg_match_all) 并以适合我的情况的方式处理这些。

4

2 回答 2

0

在您上次编辑后,我建议:

.*?([A-Z]{2} \d{2}).*?(?=[A-Z]{2} \d{2}|$)

然后替换为第一组。

(编辑前回答):

[^A-Z][^A-Z]\S\D{2}
于 2012-09-10T10:14:24.463 回答
0

在最后一个帖子编辑之后,您正在替换字符串中寻找向后引用:

pattern:  ^.*?([A-Z][A-Z] \d\d).*$
replace:  $1

也许相当于这个

pattern:  ^.*?(?=[A-Z][A-Z] \d\d)|(?<=[A-Z][A-Z] \d\d).*$
replace:  **nothing**
于 2012-09-10T10:18:37.423 回答