很长一段时间,任何时候我需要使用正则表达式,我已经使用版权符号©
作为分隔符来标准化,因为它是一个符号,它不在键盘上,我肯定不会在正则表达式中使用,不像! @#\或/(它们有时在正则表达式中全部使用)。PHP正则表达式分隔符
代码:
$result=preg_match('©<.*?>©', '<something string>');
不过,今天我需要使用重音字符,其中包括这个正则表达式:
代码:
[a-zA-ZàáâäãåąćęèéêëìíîïłńòóôöõøùúûüÿýżźñçčšžÀÁÂÄÃÅĄĆĘÈÉÊËÌÍÎÏŁŃÒÓÔÖÕØÙÚÛÜŸÝŻŹÑßÇŒÆČŠŽ∂ð \,\.\'-]+
包括在这个新的正则表达式之后PHP文件在我的IDE(Eclipse PDT)中,我被提示将PHP文件保存为UTF-8而不是默认的cp1252。
保存并运行PHP文件后,每当我在preg_match()或preg_replace()函数调用中使用正则表达式时,它都会生成一个通用PHP警告(Warning:preg_match,位于第x行的file.php中)和正则表达式没有被处理。
所以 - 两个问题:
1)是否有另一种符号,这将是好是不典型的键盘(`[email protected]#$%^&*()+=[]{};\':",./<>?|\
),我可以在标准化,而不用担心上发现了一个分隔符使用必须检查每一个正则表达式,看看这个符号是否真的在表达式的某个地方被使用了?
2)或者,当文件格式为UTF-8时,我可以使用版权符号作为标准分隔符吗?
顺便说一句评语:你可以写相同的字符类是这样的:'[A-ZA-ZA-OO ''''''''''''''''''''''。看看这个链接:http://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF –
这当然要紧凑得多。谢谢! :) –