-->

正则表达式/的Preg:不匹配,如果发现(Regex / Preg: No match, if fo

2019-07-31 14:49发布

我试图做一些PHP预浸料。 但似乎我无法得到它来搭配,如果我想没有什么事情的字符串。

例:

Hello! My name is [b]Peter Jack[/b]

如果发现有他的姓氏彼得·杰克,它不会匹配,但如果它的发现“[B]彼得[/ B]”,它将匹配。

任何人我有点坏解释的事情谁,评论,如果有其他任何你需要帮助我解决这个问题。


另一种方式,我可以说一下,就是如果我有一个链接到一个网站,它将匹配,做的东西在preg_replace函数,但如果链接到网站,像巴纽(图像)结束它不会匹配并不会做一个链接。

example.com/image.png

不会匹配,因为它包含巴纽

example.com/image

将被匹配,因为它包含png格式

Answer 1:

目前还不清楚你想要查找。 如果它只是[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)


文章来源: Regex / Preg: No match, if found