嗨,我现在有这个:
$linkOcc = substr_count($text3, "**link(");
if($linkOcc < '1'){
$text4 = $text3;
}
for ($i2=0; $i2 < $linkOcc; $i2++) {
if($i2=='0'){
preg_match('/(?<=\*\*link)\((.*)\)/', $text3, $match2);
$linkTitle = ($match2[1]);
$linkTitle = str_replace("/","",$linkTitle);
}
}
它会检测段落中是否有一段文字可以识别以下内容:
**link(exampletext)**
然后用其他东西替换它。如果
两侧都有空格,这种方法很有用**link(examplesite)**
但是,让我说我有以下段落:
So then Bob went to this**link(examplesite)**and he found a cool picture.
然后由于某种原因代码dosnt将其识别为**链接...我很确定它是因为**链接的两边都没有空格...所以我该如何解决这个?要检测**链接...并且AND侧面没有空格?
答案 0 :(得分:0)
如果您只想匹配括号内的文字:
**link(this text)**
然后你的正则表达式必须是:
\*\*link\((.*)\)\*\*
您只是捕捉任何文字 - &gt; (。*)
在括号内 - &gt; \(\)
要测试正则表达式,您可以访问: https://regex101.com/并在**链接(某些文本)之后或之前使用或不使用空格进行测试**
重要说明: 由于您只有一个捕获组,因此匹配将位于匹配数组的第一个元素上:matches [0]
如果你想要匹配的内容,你需要使用$ match2 [0]而不是$ match2 [1]