在 PHP 中是否有preg_match不需要使用正则表达式的等价物?还有str_replace()的preg_replace。有什么东西可以preg_match。
*更新 *我只想用另一个替换已知字符串。使用正则表达式似乎有点矫枉过正。
我有字符串“这是[test1],而不是[test2]”,我想将它们与“[test1]”和“[test2]”匹配。
我试图让preg_replace完全删除消息中的字符串
下面是$消息的示例:
hello there john214
welcome to the site!
please get feel free to kick back and relax.
Run Code Online (Sandbox Code Playgroud)
where john214是通过db输出的用户名
现在我想摆脱hello there john214使用preg_replace,但是,我的代码除了删除所有内容john214
继承我的代码:
$message = preg_replace('|hello there (.*?)|si', '', $message);
Run Code Online (Sandbox Code Playgroud)
为什么不删除john214?
我使用西班牙语词典api返回小问题的定义.当定义具有多于1个句子时,会发生此特定问题.有时句子没有被空格字符正确分隔,所以我收到这样的东西:
这是一个句子.还有一些句子.有时候点之间没有空格.看到?
我正在寻找一个可以取代"."的正则表达式.对于".",当点后面紧跟一个不同于空格字符的字符.preg_replace()应该返回:
这是一句话.还有一句话.有时点之间没有空格.看到?
到目前为止我有这个:
echo preg_replace('/(?<=[a-zA-Z])[.]/','. ',$string);
Run Code Online (Sandbox Code Playgroud)
问题是,当点后面已有空格时,它还会增加一个空格.有任何想法吗?谢谢!
我想从字符串中删除段落标记.我已经尝试过strip_tags和preg_replace,但它不起作用.该字符串位于mysql记录中.我之前尝试将其删除,然后将其保存在数据库中并显示之前,但似乎没有任何效果.
任何帮助赞赏.
我需要一个正则表达式来检查字符串是否为大写字母.它找到一个大写的地方它需要在它之前添加空格.我为此编写了一些代码,但问题是它只有在字符串中只有一个大写字母时才有效.但我需要使用字符串中存在的任意数量的大写字母.我粘贴了下面的代码:
$regEx = preg_match('*[A-Z]*', $str, $matches, PREG_OFFSET_CAPTURE);
if(!empty($regEx)) {
$str = substr_replace($str,' ', $matches[0][1], 0);
}
Run Code Online (Sandbox Code Playgroud) 有没有使用的方式preg_replace来代替A对B是否A存在,或者B对于A是否B存在?
就像是:
preg_replace('/ORDER BY field (ASC|DESC)/', 'ORDER BY field (***the alternative not matched***)');
Run Code Online (Sandbox Code Playgroud)
把任何ORDER BY field ASC变成ORDER BY field DESC,ORDER BY field DESC变成任何变成ORDER BY field ASC.
我有这个简单的虚拟文本
<base href="http://wjbty.lc/"/?
<a href="common/home" />
<a href="common/home" />
<a href="/common/home" />
<a href="http://common/home" />
<a href="https://common/home" />
<a href="common/home" />
Run Code Online (Sandbox Code Playgroud)
我的正则表达式模式是 (?:(href="))(?!\/)(?!https:\/\/)(?!http:\/\/)(.*)"
它的工作正常并匹配所有相关链接,但它始终包含href="在结果匹配中。
以及如何href="从结果中排除。任何人都可以测试它然后回答请,因为有两个答案,但没有一个有效。

我正在编写一个函数,它从 中获取内容$_POST,将其插入到一个字符串中,然后返回结果字符串
对于“你最喜欢的颜色是什么?”这个问题。用户输入blue
问题“你最喜欢的动物是什么?” 用户输入dog
$content = "The visitor's favorite color is {color}";
$content = sentenceBuilder($content);
$content = "The visitor's favorite animal is a {animal}";
$content = sentenceBuilder($content);
function sentenceBuilder($content){
global $_POST;
foreach($_POST as $key => $value){
if($key=='color'){
$content = preg_replace("/\{($key+)\}/", $value, $content);
}
if($key=='animal'){
$content = preg_replace("/\{($key+)\}/", $value, $content);
}
}
return $content;
}
Run Code Online (Sandbox Code Playgroud)
这将返回“访客最喜欢的颜色是蓝色”和“访客最喜欢的动物是狗”。如果他们将颜色元素留空,则返回“访客最喜欢的颜色是”和“访客最喜欢的动物是狗”。如果他们将两个元素都留空,则返回 2 个不完整的句子。
所以,我试图修改它说如果$value是空的,该函数将跳过它并移动到下一个(因为它使用在 $_POST 中移动的每个表单元素)......
if($key=='color' && $value!=''){
$content = preg_replace("/\{($key+)\}/", $value, $content);
}else{
$content ='';
}
if($key=='animal' …Run Code Online (Sandbox Code Playgroud) 我正在尝试捕获home_impact和away_impact,但是当我提取文本时,它充满了空白行,空白,断行等,如下所示:
David Luiz
35'
36'
De Gea
Run Code Online (Sandbox Code Playgroud)
我也尝试过仅提取div id match_info,但它仅生成一个带有一个元素的数组,并且也有很多换行符。我试过使用preserveWhiteSpace和preg_replace,但是没有用,如何避免这种情况?谢谢。
HTML:
<div id="match_info">
<div class="direct_line">
<div class="home_impact"><div class='player_name'>David Luiz </div></div>
<div class="minute">35'</div>
<div class="away_impact">
</div>
</div>
<div class="direct_line">
<div class="home_impact"></div>
<div class="minute">36'</div>
<div class="away_impact">
<div class='player_name'>De Gea</div>
</div>
</div>
<div class="direct_line">
<div class="home_impact"></div>
<div class="minute">38'</div>
<div class="away_impact">
<div class='player_name'>Ashley Cole</div>
</div>
<div class="home_impact"><div class='player_name'>Juan Mata</div>/div>
<div class="minute">35'</div>
<div class="away_impact">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
PHP:
$html = file_get_contents($url);
$doc = new DOMDocument();
//$doc->preserveWhiteSpace = FALSE;
@$doc->loadHTML($html);
$xpath = new DOMXpath ($doc);
$expresionHome="//div[@class='home_impact']";
$expresionAway="//div[@class='away_impact']"; …Run Code Online (Sandbox Code Playgroud) 我有一大堆内容被读入,它包含许多字符串{{some_text}},我正在尝试做的是找到所有这些出现并用数组中的另一个值替换它们$text["some_text"].
我已经尝试过使用preg_replace,但不确定如何在括号中找到找到的文本并在替换值中使用它.
$body = "This is a body of {{some_text}} text from a book.";
$text["some_text"] = "really cool";
$parsedBody = preg_replace("\[{].*[}]/U", $text[""], $body);
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,我试图some_text从字符串中获取文本并使用它来调用数组中的元素,这个例子非常基本,因为它的$body值非常大,并且它$text也有几百个元素.
preg-replace ×10
php ×9
regex ×5
preg-match ×2
str-replace ×2
domdocument ×1
function ×1
mysql ×1
pcre ×1