正则表达式的引号外优先匹配方式示例
时间: 2023-05-31 19:04:52 浏览: 79
正则表达式示例
假设有以下字符串:
```
"I have a 'cat' and a 'dog'"
```
我们想要匹配所有被单引号包围的单词。如果我们使用引号内优先匹配方式,我们可以使用下面的正则表达式:
```
'[^']*'
```
这个正则表达式的意思是匹配一个单引号开始,后面跟着任意数量的非单引号字符,最后以单引号结束。
如果我们使用引号外优先匹配方式,我们需要在正则表达式中加入一些额外的逻辑。一个可能的正则表达式是:
```
(?:^|[^'])(?:'([^']*)')(?:[^']|$)
```
这个正则表达式的意思是:
- `(?:^|[^'])` 匹配字符串的开始或者非单引号字符
- `(?:'([^']*)')` 匹配一个单引号开始,后面跟着任意数量的非单引号字符,最后以单引号结束,并且将单引号内的内容保存为一个捕获组
- `(?:[^']|$)` 匹配一个非单引号字符或者字符串的结束
使用这个正则表达式,我们可以得到两个捕获组,分别是 `'cat'` 和 `'dog'`。
阅读全文