我正在尝试做一些PHP preg。但是,如果我想要一个没有东西的字符串,我似乎无法让它匹配。
示例:
Hello! My name is [b]Peter Jack[/b]
如果找到彼得杰克的姓氏,那么它将不匹配,但如果发现“[b]彼得[/ b]”,它将匹配。
任何我在解释事情方面都不好的人,如果还有什么需要帮我解决这个问题,请发表评论。
我可以说的另一种方式是,如果我有一个链接到网站,它将匹配并在preg_replace中执行这些操作,但如果指向网站的链接以.png(图像)结尾,则将不会匹配,也不会建立链接。
example.com/image.png
不会匹配,因为它包含.png
example.com/image
将匹配,因为不包含.png
答案 0 :(得分:2)
目前还不清楚你想要找到什么。如果它只是[b]Peter[/b]
,那么您不需要正则表达式。
如果要查找由BBCode粗体标记包围的单个“单词”,请使用
preg_match('%\[b\]\w*\[/b\]%', $subject)
如果您想在BBCode粗体标签内找到任何内容,只要它不包含Jack
,请使用
preg_match(
'%\[b\] # Match [b]
(?: # Try to match...
(?!Jack) # (unless the word "Jack" occurs there)
. # any character
)*? # any number of times, as few as possible
\[/b\] # Match [/b]%x',
$subject)