preg_replace保持:\
I'm trying to use regular expressions to work on some strings.
At the moment i'm using this expression $var1=trim(preg_replace('/[^A-Za-z0-9\-\']/', ' ', $myString));
But with this one i'm loosing some characters i want to keep.
Those characters are '.' '\' and ':'. Can someone give me some hints to maintain those characters? Thanks for your time
UPDATE
Using Adlan string i got the right result. Now i have another problem but is not inerent with the topic. Anyway i get this string after preg_repleace Found some changes in D:\EER Data\project\myfile.csv
In this string there are correct backslashes but when i call json_encode($myString) backslashes are gone..
UPDATE2
OK , i found the problem and i know how to solve it.
I have to put double \ where there is only a .
So this string D:\EER Data\project\myfile.csv
should become D:\\EER Data\\project\\myfile.csv
How can i achieve this with preg_replace? Thanks for the help
我正在尝试使用正则表达式来处理某些字符串。 p>
目前我正在使用这个表达式 UPDATE
使用Adlan字符串我得到了正确的结果。 现在我有另一个问题,但与主题不一致。 无论如何我在preg_repleace UPDATE2 strong>
OK,我发现问题,我知道如何解决它。
我必须把双\ \只有一个。
So 这个字符串 $ var1 = trim(preg_replace('/ [^ A-Za-z0-9 \ - \'] /','',$ myString)); code >
但是这个我正在丢失一些我想保留的角色。
这些角色是'。' '\'和':'。 有人可以给我一些提示来维护这些角色吗? 感谢您的时间 p>
之后得到这个字符串在D:\ EER Data \ project \ myfile.csv code>
中发现了一些变化。在这个字符串中有正确的反斜杠但是当我调用json_encode($ myString)时,反斜杠消失了。 。 p>
D:\ EER Data \ project \ myfile.csv code>应该成为
D:\\ EER Data \\ project \\ myfile.csv code>
我怎样才能实现这个目的 preg_replace函数? 感谢您的帮助 p>
div>
Try use:
/[^A-Za-z0-9\-\'\\\.\:]/
Code: (Demo)
$myString=<<<TEXT
Found some changes in D:\EER Data\project\myfile.csv
TEXT;
$var1=trim(preg_replace("~[^a-z\d.:'\\\-]~i", ' ', $myString)); // keep letters, numbers dot, colon, single-quote, backslash, and hyphen
echo "$var1
";
echo json_encode($var1); // it's a good idea to keep the escaping \ while in json.
Output:
Found some changes in D:\EER Data\project\myfile.csv
"Found some changes in D:\\EER Data\\project\\myfile.csv"