2013-04-18 34 views
4

我想查找数组中的空字符,这是我的。我试着显示ASCII值,它打印0(所以我确认它是一个空值)。如何编写正则表达式来过滤掉这些值。在Perl中使用正则表达式查找空字符

我写道:

m/^$/ig 

这确实对我没有帮助。有人知道如何匹配空字符吗?

+0

有没有什么方法在正则表达式中编写ASCII值来匹配它? –

+1

'使用Data :: Dumper; $ Data :: Dumper :: Useqq = 1;打印Dumper $ yourvariable'会向你显示隐藏的角色究竟是什么。 – TLP

+0

$ VAR1 =“”;我得到了这个显示@TLP –

回答

4

您可以使用\0找到空字符。 (但不要跟着这与另一个数字)

+0

这真的没有帮助我:( –

+0

你试过它在正则表达式吗?像'/ \ 0/ims' –

+0

也许它不是一个空字符,它是一个不可见的空白,在这种情况下试试'/ \ p { Z} /' –

-1

0x0应该做的伎俩。

0X [0-9A-F]找到任何十六进制数字

+0

那么我说这是一个ASCII值0,而不是十六进制值 –

+0

十六进制0x30 == ascii 0.你可以尝试打印出十六进制字符串的神秘字符? – ChaseTheSun

8

可以使用\x后跟ASCII字符的十六进制代码到ASCII字符相匹配。

E.g. /\x3F/将匹配“?”,/\x46\x4F\x4F/以匹配“FOO”。

看到它here on Regexr

所以/\x00/将匹配NULL字符。

相关问题