gpt4 book ai didi

regex - 正则表达式可选匹配行的开始/结束

转载 作者:行者123 更新时间:2023-12-01 12:46:09 27 4
gpt4 key购买 nike

我如何有选择地匹配开始 ^或结束 $正则表达式中的一行?

例如:

/(?<=[\s\^])/不匹配以空格字符或行首开头。

我的问题是在 PHP 中匹配以下内容。

$str = '**bold** **bold** **bold**';
echo preg_replace('/(?<=\s|^)\*\*(.+?)\*\*(?=\s|$)/', '<strong>\\1</strong>', $str);

我的字符串开头和结尾处的粗体边缘情况没有被匹配。我在使用其他变体时遇到的一些极端情况包括字符串内匹配、星号链匹配以及无数其他问题。

echo preg_replace('/(?<=^|\s|\>)[\*]{2,}(?=[^\s\*])(.+?)(?<=[^\s\*])[\*]{2,}(?=\s|\<|$)/', '<strong>\\1</strong>', $str);

最佳答案

如果您坚持在空白字符行首 之后进行匹配,请使用alternation。 (不是 character class )。假设您的正则表达式风格支持 lookbehind assertions 中的交替.

/(?<=\s|^)\w+/m

但您可能正在寻找 word boundary , \b。它们在单词的开头或结尾匹配(恰好在从单词字符到非单词字符的变化或反之亦然)。

关于regex - 正则表达式可选匹配行的开始/结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15734322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com