gpt4 book ai didi

php - Preg_match,如果 格式正确

转载 作者:行者123 更新时间:2023-12-04 15:31:13 26 4
gpt4 key购买 nike

if(preg_match("/(.*(<code>).*(<\/code>).*)*/", $string))

我已经尝试了好几个小时,但我无法让它发挥作用。我希望如果用户正确格式化文本,例如:

(any_string*<code>any_string*</code>any_string*)*

只有到那时我才会用 * 表示空字符串或多次格式化文本。我的表情有什么问题吗?

编辑:我想匹配 lalala text <code>dlalala lala code</code> lalalal .如果是 lala <code> lalalalalal </code> <code> lalala <code>alala那么我们不想匹配它。

最佳答案

这适用于 2 个给定的测试用例:

$arr = array('lalala text <code>dlalala lala code</code> lalalal.',
'lala <code> lalala or lalal </code> <code> lalala <code>alala');
foreach ($arr as $str) {
echo "$str\n";
if (preg_match('#^(?<!<code>).*<code>.*?</code>(?!.*<code>)#', $str)) {
echo "===> Match\n";
} else {
echo "===> Not match\n";
}
}

输出:

lalala text <code>dlalala lala code</code> lalalal.
===> Match
lala <code> lalala or lalal </code> <code> lalala <code>alala
===> Not match

关于正则表达式的一些解释:

#           : regex delimiter
^ : begining of string
(?<! : start negative lookbehind
<code> : literally <code>
) : end of lookbehind
.* : any char any number of time
<code> : literally <code>
.*? : any char any number of time not greedy
</code> : literally </code>
(?! : start negative lookahead
.* : any char any number of time
<code> : literally <code>
) : end of lookahead
# : regex delimiter

您可以找到一些关于环视的有用信息here

关于php - Preg_match,如果 <code></code> 格式正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450484/

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