正则表达式在上次匹配后不匹配文本
Regex does not match text after last match
我正在尝试获取所有文本,但如果它在内联代码 (`) 或代码块 (```) 中则无法获取。我的正则表达式工作正常,但最后一个文本不匹配,我不知道为什么。
我当前的正则表达式:
(.*?)`{1,3}(?:.*?)`{1,3}(.*?)
您可以在这里查看结果:https://regex101.com/r/lYQnUJ/1/
也许有人知道如何解决这个问题。
您可以使用
preg_split('~```.*?```|`[^`]*`~s', $text)
详情:
```
- 三重反引号
.*?
- 尽可能少的任何零个或多个字符
```
- 三重反引号
|
- 或
`
- 反引号
[^`]*
- 除反引号外的零个或多个字符
`
- 反引号
<?php
$text = 'your_text_here';
print_r(preg_split('~```.*?```|`[^`]*`~s', $text));
输出:
Array
(
[0] => some text here
some more
[1] =>
some
[2] => too
and more code blocks:
[3] =>
this text isn't matched...
)
我正在尝试获取所有文本,但如果它在内联代码 (`) 或代码块 (```) 中则无法获取。我的正则表达式工作正常,但最后一个文本不匹配,我不知道为什么。
我当前的正则表达式:
(.*?)`{1,3}(?:.*?)`{1,3}(.*?)
您可以在这里查看结果:https://regex101.com/r/lYQnUJ/1/
也许有人知道如何解决这个问题。
您可以使用
preg_split('~```.*?```|`[^`]*`~s', $text)
详情:
```
- 三重反引号.*?
- 尽可能少的任何零个或多个字符```
- 三重反引号|
- 或`
- 反引号[^`]*
- 除反引号外的零个或多个字符`
- 反引号
<?php
$text = 'your_text_here';
print_r(preg_split('~```.*?```|`[^`]*`~s', $text));
输出:
Array
(
[0] => some text here
some more
[1] =>
some
[2] => too
and more code blocks:
[3] =>
this text isn't matched...
)