C#中的PHP preg_replace是什么?
我有一个字符串数组,我想用另一个字符串数组替换.这是PHP中的一个例子.如何在不使用.Replace("old","new")的情况下在C#中执行类似的操作.
$patterns[0] = '/=C0/';
$patterns[1] = '/=E9/';
$patterns[2] = '/=C9/';
$replacements[0] = 'à';
$replacements[1] = 'é';
$replacements[2] = 'é';
return preg_replace($patterns, $replacements, $text);
Run Code Online (Sandbox Code Playgroud) 我有以下功能:
listorder = listorder.replace('projectlist-','');
Run Code Online (Sandbox Code Playgroud)
问题是它只找到并替换第一个实例,并且有很多.如何更新为查找/替换字符串中的所有实例?
谢谢
我拼凑了下面的代码块,以帮助我通过我的Twitter帐户在我的网站上显示最新的推文.但是,它不是很正常,你可以帮我调试最后一点.我正在寻找PHP将其转换为HTML,其中链接标签包含在Twitter用户名和正在使用的链接上preg_replace.
如果你测试这个脚本,你会发现它在推文中提取标准链接的时候会出现问题,它会在过早发布关闭的<a>标签a.我确信这个修复起来相对简单,而且可能是关于转义字符或其他东西.
我的主要代码块:
<?php
/** Script to pull in the latest tweet */
$username='benpaton';
$format = 'json';
$tweet = json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}"));
$latestTweet = htmlentities($tweet[0]->text, ENT_QUOTES);
$latestTweet = preg_replace('/http:\/\/([[a-z0-9_\.\-\+\&\!\#\~\,]+)/i', '<a href="http://$1" target="_blank">http://$1</a>', $latestTweet);
$latestTweet = preg_replace('/@([a-z0-9_]+)/i', '<a href="http://twitter.com/$1" target="_blank">@$1</a>', $latestTweet);
echo $latestTweet;
?>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用preg_replace来替换
<a href="WWW.ANYURL.COM">DISPLAY_TEXT</a>
Run Code Online (Sandbox Code Playgroud)
同
<a href="WWW.ANYURL.COM">DISPLAY_TEXT</a>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
$string = htmlentities(mysql_real_escape_string($string1));
$newString = preg_replace('#<a\ href="([^&]*)">([^&]*)</a>#','<a href="$1">$2</a>',$string);
Run Code Online (Sandbox Code Playgroud)
如果我做有限的测试,例如:
$newString = preg_replace('#<a\ href#','TEST',$string);
Run Code Online (Sandbox Code Playgroud)
然后
<a href="WWW.ANYURL.COM">DISPLAYTEXT</a>
Run Code Online (Sandbox Code Playgroud)
变
TEST="WWW.ANYURL.COM">DISPLAYTEXT</a>
Run Code Online (Sandbox Code Playgroud)
但是,如果我试图让它也匹配"=",它就好像找不到匹配,即
$newString = preg_replace('#<a\ href=#','TEST',$string);
Run Code Online (Sandbox Code Playgroud)
返回原来的不变:
<a href="WWW.ANYURL.COM">DISPLAY_TEXT</a>
Run Code Online (Sandbox Code Playgroud)
我已经在这里待了几个小时,任何帮助将不胜感激.
编辑:上下文中的代码
$title = clean_input($_POST['title']);
$story = clean_input($_POST['story']);
function clean_input($string)
{
if(get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
$string = htmlentities(mysql_real_escape_string($string));
$findValues = array("<b>","</b>");
$newValues = array("<b>", "</b>");
$newString = str_replace($findValues, $newValues, $string);
$newString2 = preg_replace('#<a\ href="([^&]*)">([^&]*)</a>#','<a href="$1">$2</a>',$newString);
return $newString2;
}
Run Code Online (Sandbox Code Playgroud)
样本$ story = Lorem ipsum dolor sit …
我需要找到一个带正则表达式的空格.我需要找到并替换空格或多个空格,只要它在新行之前或之后,并且其他空格应该保留.
现在我用它来删除多个空格:
preg_replace('/\s{2,}/', ' ', $string);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我想在第一个位置复制colum的第一个值并注释掉旧值.例如 :
word1 word2 1233425 -----> 1233425 word1 word2 #1233425
word1 word2 word3 49586 -----> 49586 word1 word2 word3 #49586
Run Code Online (Sandbox Code Playgroud)
我不知道号码前面的字数.
我尝试使用awk脚本:
awk '{$1="";score=$NF;$NF="";print $score $0 #$score}' file
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我正在使用缓冲区清理程序,如PHP手册评论中所示,但在textareas中遇到双重换行问题.
从我的数据库中拉出一个字符串,包含double/triple/quadruple换行符,并将其放入a中时textarea,换行符将减少到只有一个换行符.
因此:是否有可能具备的功能排除之间的所有输出<pre>,<textarea>并且</pre>,</textarea>?
看到这个问题,如何在不删除IE条件注释的情况下缩小php html输出?,我想我需要使用preg_match,但我不知道如何将它实现到这个函数中.
我正在使用的功能是
function sanitize_output($buffer) {
$search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
ob_start("sanitize_output");
Run Code Online (Sandbox Code Playgroud)
是的,我正在使用这种消毒杀菌剂,并GZIP尽可能获得最小的尺寸.
当我从剪贴板粘贴某些内容时,我想仅从contenteditablediv保留项newline或br标签中删除富文本格式。
我正在尝试,但是不起作用 http://jsfiddle.net/marco83/zkf5jkqu/
<div id="editableDiv" contentEditable="true" style="min-height: 200px; border: solid 1px #0099FF;"></div>
<input type="button" value="remove" onclick="strip();">
<script>
function strip() {
var mydiv = document.getElementById("editableDiv");
var str = mydiv.innerHTML;
str = str.replace(/<br>/gi, "\n");
str = str.replace(/<(?:.|\s)*?>/g, "");
mydiv.innerHTML = str;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我从此页面复制文本http://www.jacklmoore.com/autosize/
我知道它没有任何<br>标记文本。但是我怎么能像Twitter这样呢?谢谢。
使用正则表达式,我想检测字符串中括号内是否存在特定单词,如果是,则删除括号及其内容.
我想要的目标是:
picture
see
lorem
Run Code Online (Sandbox Code Playgroud)
所以,这里有3个字符串示例:
$text1 = 'Hello world (see below).';
$text2 = 'Lorem ipsum (there is a picture here) world!';
$text3 = 'Attack on titan (is lorem) great but (should not be removed).';
Run Code Online (Sandbox Code Playgroud)
我可以使用什么正则表达式preg_replace():
$text = preg_replace($regex, '' , $text);
Run Code Online (Sandbox Code Playgroud)
要删除这些括号及其内容(如果它们包含这些词语)?
结果应该是:
$text1 = 'Hello world.';
$text2 = 'Lorem ipsum world!';
$text3 = 'Attack on titan great but (should not be removed).';
Run Code Online (Sandbox Code Playgroud)
这是测试的理想选择.
我有一个特定的字符串
$email = "jaymin+1@gmail.com";
Run Code Online (Sandbox Code Playgroud)
我要清理并从字符串中删除+1,它也可以是任何数字+1或+99,因此最终字符串可以是
$email = "jaymin@gmail.com";
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么办,我尝试创建此方法,但它给了我这个输出。
$email = jaymingmail.com;
Run Code Online (Sandbox Code Playgroud)
下面是我的功能:
public function delete_all_between($beginning, $end, $string) {
$beginningPos = strpos($string, $beginning);
$endPos = strpos($string, $end);
if ($beginningPos === false || $endPos === false) {
return $string;
}
$textToDelete = substr($string, $beginningPos, ($endPos + strlen($end)) - $beginningPos);
return $this->delete_all_between($beginning, $end, str_replace($textToDelete, '', $string)); // recursion to ensure all occurrences are replaced
}
$out = $this->delete_all_between('+', '@', $email);
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决我要去的地方。
我需要删除+1或+号后的任何数字。