正则表达式以查找包含自定义符号的单词或句子 - php

我需要替换一些单词或句子并将其转换为下划线。我正在使用PHP并找到一个参考:PHP Regex, extract all custom tags from text

不知何故,这种情况只涉及单个单词,不涉及句子。如何使正则表达式也可以捕获##标记括起来的所有内容?

假设我的输入如下:

“互联网上的Lorem Ipsum ## generators ##往往会根据需要重复预定义的块,这使其成为Internet上第一个真正的生成器。它使用超过## 200个拉丁语单词##的字典,并结合了少数几个模型句子结构,以生成看起来合理的Lorem Ipsum。因此,所生成的Lorem Ipsum始终##没有重复##,注入的幽默或非特征性单词等。”

然后输出将是:

“互联网上的Lorem Ipsum ____1____倾向于根据需要重复预定义的块,这使其成为Internet上第一个真正的生成器。它使用超过____2____的字典并结合少量模型句子结构来生成看起来像Lorem Ipsum的因此,生成的Lorem Ipsum始终是____3____,注入的幽默或非特征性单词等。”

谁能帮我获得正则表达式模式?

参考方案

我认为正则表达式是:

/##[^#]+##/g

[Regex Demo]

$text = 'll the Lorem Ipsum ##generators## on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over ##200 Latin words##, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always ##free from repetition##, injected humour, or non-characteristic words etc.';

preg_match_all('/##[^#]+##/', $text, $matches, PREG_SET_ORDER);

for ($i = 0; $i < count($matches); $i++) {
  $text = preg_replace("/".$matches[$i][0]."/", "___".strval($i+1)."___" , $text, 1);
}

[PHP Demo]

php preg_replace两个或更多空格 - php

我正在寻找替换多个空格字符的实例。我最初的搜索似乎都集中在使用/s,但这包括换行符和其他空格我认为应该接近吗?用一个空格替换两个或更多实例空格" "preg_replace('/ {2,}/', ' ', $string); 参考方案 尝试一下:preg_replace('/\s\s+/&…

PHP:Preg_replace,单词边界和非单词字符 - php

我需要替换文本中以井号(#)开头的单词。好吧,我知道如何替换整个单词。preg_replace("/\b".$variable."\b/", $value, $text);由于该\ b修饰符仅接受单词字符,因此不会替换包含井号的单词。我有这个html,其中包含#companyName类型的变量,我将其替换为一个值。 参…

PHP preg_replace删除字符串中的第一个HTML元素 - php

我想在PHP中删除html字符串(始终是一个段落)的整个第一个元素。我目前的方法是使用:$passage = preg_replace('/.*?\b'.'</p>'.'\b/s', '', $passage, 1); 由于</p>中的特殊字符,此方法不起…

PHP preg_replace和号 - php

好吧,我可能不会以正确的方式解决这个问题,但是这里就来了。我有这个带链接的字符串,并提取标签之间的文本...$string = $item; $pattern = '/\<a([^>]*)\>([^<]*)\<\/a\>/i'; $replacement = '$2'; $messa…

PHP preg_replace替换数字以及特殊字符 - php

我有以下PHP代码可从变量中删除特殊字符;<?php $name = "my%^$@#name8"; $patterns = array( '/\s+/' => '_', '/&/' => 'and', '/[^[:alph…