我有一个字符串:
$string = "Hello World!";
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个URL友好的标签,我已经开发了一个函数来做到这一点:
function stripJunk($string){
$string = str_replace(" ", "-", $string);
$string = preg_replace("/[^a-zA-Z]\s/", "", $string);
$string = strtolower($string);
return $string;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在$string上面运行时,我得到以下内容:
$string = "hello-world!";
Run Code Online (Sandbox Code Playgroud)
似乎有些人物在我的preg_replace中滑落,即使从我的理解,他们也不应该.
它应该是这样的:
$string = "hello-world";
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?(这应该是轻松的柠檬吱吱!)
编辑1:我不知道正则表达式是初学者的东西,但无论如何.此外,删除我的字符串中的\ s不会产生所需的结果.
期望的结果是:
编辑2+:稍微清理我的代码.
我正在尝试匹配<a>我的内容中的标签,然后用链接文本替换,然后用方括号中的url替换打印版本.如果只有"href",则以下示例有效.如果<a>包含另一个属性,则它匹配太多并且不会返回所需的结果.如何匹配URL和链接文本呢?
这是我的代码:
<?php
$content = '<a href="http://www.website.com">This is a text link</a>';
$result = preg_replace('/<a href="(http:\/\/[A-Za-z0-9\\.:\/]{1,})">([\\s\\S]*?)<\/a>/',
'<strong>\\2</strong> [\\1]', $content);
echo $result;
?>
Run Code Online (Sandbox Code Playgroud)
期望的结果:
<strong>This is a text link </strong> [http://www.website.com]
Run Code Online (Sandbox Code Playgroud)
谢谢你,杰森
以下代码将正确替换空格:
$string = preg_replace("/[[:blank:]]+/", "", $string);
Run Code Online (Sandbox Code Playgroud)
但如果有超过2个空格,我怎么能这样做呢?因为现在它取代了所有空间,我只需要它来替换多个空格.我在这里搜索并看到人们使用完全不同的preg_replace代码,但它也删除了换行符,所以如果我发布的代码可以简单地修改为允许多个空白,那就太好了.我记得有一段时间回来阅读一个教程,它使用{2+}了preg区域中的东西,以匹配任何超过两个或类似的东西,但不知道如何让它正常工作.谢谢.
我有一个输入字段,在提交时会将这样的代码附加到url:
?searchval=this+is+a+test
在我的php文件中,我现在想要将这个字符串逐字存储在一个数组中,将其拆分为空格所在的位置......如下所示:
array[0] = "this";
array[1] = "is";
array[2] = "a";
array[3] = "test";
Run Code Online (Sandbox Code Playgroud)
实现这一目标最有效的方法是什么?我已经搞乱了substr()和preg_replace(),但是整个事情非常混乱,我认为必须有一个更简单的方法,考虑到$ _GET也会在URL中用+分隔单词.
任何帮助将不胜感激.:)
我怎样才能删除所有非语言字符?
我想删除下面的字符,以及所有其他非语言字符:
??
Run Code Online (Sandbox Code Playgroud)
我用这个:
preg_replace("/[^a-z0-9A-Z\-\'\|\!\.\?\:\)\(\;\*\"]/u", " ", $text );
Run Code Online (Sandbox Code Playgroud)
这对英语有好处,我需要批准所有语言字符,如俄语,阿拉伯语,希伯来语,日本......
是否有任何字符串函数可用于保留所有语言字符?
谢谢
我正在使用:
$this->tresc[$i][description]=preg_replace("/\<a .*\>.*\<\/a\>/i", "", $this->tresc[$i][description]);
Run Code Online (Sandbox Code Playgroud)
删除链接.
有时链接里面有我希望保留的图像:
<a href="http://www.domain.com/page.php"><img src="http://domain.com/image.jpg" alt="?Image" align="left" /></a>
Run Code Online (Sandbox Code Playgroud)
这可能吗 ?现在一切都beetween <a>和</a>被删除.
我想要一个正则表达式,它将删除双引号文本元素的开头和结尾的额外空格.目前我没有提出一个有效的方法.
例如.转变
马丁说"oogle booogle"和Martha说"totty wottie"
至
马丁说"oogle booogle"和Martha说"totty wottie"
谢谢,
标记
我使用CK编辑器并希望在发布时分离所有图像内容.发布时字符串是这样的:
$string1 = '<h1>Foo bar!</h1> <img src="foo.bar/image.jpg" />';
$string2 = '<p>Hello world</p><br><img src="another.url/image123.jpg" />'
Run Code Online (Sandbox Code Playgroud)
查找图像
preg_match_all('/<img[^>]+>/i',$string1, $result1);
preg_match_all('/<img[^>]+>/i',$string2, $result2);
Run Code Online (Sandbox Code Playgroud)
我怎样才能翻译......
<img src="foo.bar/image.jpg" />
Run Code Online (Sandbox Code Playgroud)
致: image.jpg
有任何想法吗?
正则表达式'/ [^ 0-9] /'或'/\D /'或'/\d /'之间有什么区别?使用单引号双引号更好吗?
$number = '123asd456.789,123a4!"·$%&/()=/*-+<br>';
preg_replace('/\D/', '', $number) = 1234567891234
preg_replace('/\d/', '', $number) = asd.,a!"·$%&/()=/*-+
preg_replace('/[^0-9]+/', '', $number) = 1234567891234
Run Code Online (Sandbox Code Playgroud)
当然我做了一些测试,那些是我的结果,我只是想更多地看一些正则表达式.哪个性能更好?
谢谢!!
有一个网址类型
https://example.com.ua/part1/part2/part3/product-123.html
Run Code Online (Sandbox Code Playgroud)
如何获得product-123.html正则表达式?
我试过这个:
echo
preg_replace('#/([a-zA-Z0-9_-]+\.html)$#','$1','https://example.com.ua/part1/part2/part3/product-123.html');
Run Code Online (Sandbox Code Playgroud)