相关疑难解决方法(0)

用正则表达式无法逃避反斜杠?

我正在使用以下正则表达式

^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
Run Code Online (Sandbox Code Playgroud)

我知道这很难看,但到目前为止,除了不允许反斜杠之外它还有其他目的,因为它已经逃脱,我也试过\\而不是\\\相同的结果.有任何想法吗?

regex

105
推荐指数
4
解决办法
19万
查看次数

使用PHP中的换行符替换文字字符串\ r \n的问题

我有一个文本文件,其中包含文字字符串\r\n.我想用实际换行符(\n)替换它.

我知道正则表达式/\\r\\n/应该匹配它(我已经在Reggy中测试过了),但是我无法在PHP中使用它.

我尝试了以下变化:

preg_replace("/\\\\r\\\\n/", "\n", $line);

preg_replace("/\\\\[r]\\\\[n]/", "\n", $line);

preg_replace("/[\\\\][r][\\\\][n]/", "\n", $line);

preg_replace("/[\\\\]r[\\\\]n/", "\n", $line);

如果我只是尝试替换反斜杠,它可以正常工作.一旦我添加一个r,它就找不到匹配项.

我正在阅读的文件编码为UTF-16.

编辑:

我也尝试过使用过str_replace().

我现在认为这里的问题是文件的字符编码.我尝试了以下,它确实有效:

$testString = "\\r\\n";
echo preg_replace("/\\\\r\\\\n/", "\n", $testString);
Run Code Online (Sandbox Code Playgroud)

但它不适用于我从我的文件中读取的行.

php regex preg-replace backslash

2
推荐指数
1
解决办法
3241
查看次数

标签 统计

regex ×2

backslash ×1

php ×1

preg-replace ×1