我有一个包含非法字符的txt文件。出于这个原因,当我运行我的程序时,它将崩溃,因为不允许非法字符。我无法打印字符,因为复制和粘贴时它们显示为空白区域。在Notepad ++中,它们显示为“NULL”。我认为最好的解决方案是制作所有允许字符的正则表达式。现在我是regex的新手,我在创建正则表达式时使用了管道。这不起作用,因为正则表达式将首先搜索字符[A-Z]作为示例,如果它找到它然后移动到下一个URL。
例如,URL可能如下所示:
http://www.example/com/folder/topic1/ILLEGALCHARACTER
现在我的正则表达式不会清理这个,就像我说我是新手所以无法解决这个问题。我想要允许的字符是:
0-9
A-Z
a-z
'
-
–
—
!
"
$
%
&
(
)
*
,
.
/
:
;
?
@
[
\
]
_
`
{
|
}
~
¡
¦
¿
‘
’
‚
“
”
‹
›
¢
£
¥
€
+
<
=
>
±
«
»
×
§
©
®
µ
…
‰
Á
á
À
à
â
Â
ä
Ä
Ã
ã
Å
æ
Æ
Ç
ç
Ð
é
É
è
È
Ê
ê
Ë
ë
ƒ
Í
í
Ì
Î
Ï
ñ
Ó
ó
Ò
Ô
Ö
Õ
Ø
Œ
œ
ß
Þ
™
Ú
Ù
û
Û
Ü
ü
Ý
ÿ
我能找到的最好的正则表达式是:
(HTTP | FTP | HTTPS):// [\ W-_] + +([\ W - ,@ ^ =%安培([\ W-_] +。);:/?〜+# ?] * [\ W - \ @ ^ =%安培; /〜+#])
然而这不起作用。我正在使用自定义重复删除程序,它仍然崩溃。开发人员告诉我它,因为它将非法字符视为行尾等。希望对此有所帮助
编辑:正则表达式语言是PERL