我试图使用正则表达式来处理某些字符串。
目前我正在使用此表达式$var1=trim(preg_replace('/[^A-Za-z0-9\-\']/', ' ', $myString));
但是有了这个我失去了一些我想留下的角色。
那些角色是'。' ' \'和':'。有人可以给我一些提示来维护这些角色吗?谢谢你的时间
UPDATE
使用Adlan字符串我得到了正确的结果。现在我有另一个问题,但与主题不一致。无论如何,我在preg_repleace Found some changes in D:\EER Data\project\myfile.csv
之后得到这个字符串
在这个字符串中有正确的反斜杠,但是当我调用json_encode($ myString)时,反斜杠就消失了..
UPDATE2
好的,我发现了问题,我知道如何解决它。
我必须把双\ \只有一个。
因此,此字符串D:\EER Data\project\myfile.csv
应变为D:\\EER Data\\project\\myfile.csv
我如何用preg_replace实现这一目标?谢谢你的帮助
答案 0 :(得分:1)
尝试使用:
/[^A-Za-z0-9\-\'\\\.\:]/
答案 1 :(得分:0)
代码:(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\n";
echo json_encode($var1); // it's a good idea to keep the escaping \ while in json.
输出:
Found some changes in D:\EER Data\project\myfile.csv
"Found some changes in D:\\EER Data\\project\\myfile.csv"