在PHP中,正则表达式的前瞻(lookahead)和后顾(lookbehind)是两种强大的预查工具,可以用来在匹配模式时进行条件判断。前瞻用于查找某个位置之后必须存在(或不存在)的字符序列。

以下是一个使用PHP正则前瞻的实例,我们将通过几个表格来展示前瞻的不同用法。

1. 前瞻匹配示例:必须跟在特定字符之后

需求:匹配所有年份,但年份之后必须紧跟“年”字。

```php

$pattern = '/""d+(年)/';

$text = '2023年是一个重要的年份,2022年则不是。';

preg_match_all($pattern, $text, $matches);

```

匹配结果
2023年

2. 前瞻否定匹配示例:不能跟在特定字符之后

需求:匹配所有年份,但年份之后不能紧跟“年”。

```php

$pattern = '/""d+(?![年])/';

$text = '2023年是一个重要的年份,2022则不是。';

preg_match_all($pattern, $text, $matches);

```

匹配结果
2023
2022

3. 前瞻匹配示例:必须出现在特定位置之后

需求:匹配所有单词,但单词之后必须紧跟“的”。

```php

$pattern = '/""w+(的)/';

$text = '这是我的书,那不是你的。';

preg_match_all($pattern, $text, $matches);

```

匹配结果
我的
你的

4. 前瞻否定匹配示例:不能出现在特定位置之后

需求:匹配所有单词,但单词之后不能紧跟“的”。

```php

$pattern = '/""w+(?![的])/';

$text = '这是我的书,那不是你的。';

preg_match_all($pattern, $text, $matches);

```

匹配结果
的书