我正在使用日期转换函数(如date()),并且需要解析字符串并留下转义字符。获取反斜线未转义字符
我的意思是改变$ STR1通过正则表达式(或任何更好的方法)$ STR2:
$str1 = '5852&^\a\\b\\\\\c D \\e k.';
$str2 = 'bDek';
$ STR2只[A-ZA-Z]未用反斜杠转义。
问候,
我正在使用日期转换函数(如date()),并且需要解析字符串并留下转义字符。获取反斜线未转义字符
我的意思是改变$ STR1通过正则表达式(或任何更好的方法)$ STR2:
$str1 = '5852&^\a\\b\\\\\c D \\e k.';
$str2 = 'bDek';
$ STR2只[A-ZA-Z]未用反斜杠转义。
问候,
这可以解决你:
(?:^|[^\\](?:\\\\)*)([a-zA-Z])\b
Perl的演示:
$ perl -ne 'print "-->$_<--\n" foreach m/(?:^|[^\\](?:\\\\)*)([a-zA-Z])\b/g'
5852&^\a\\b\\\\\c D \\e k.
-->b<--
-->D<--
-->e<--
-->k<--
o\a\\b\\\c\\\\d
-->o<--
-->b<--
-->d<--
正则表达式如下:
(?: # begin non capturing group
^ # the beginning of input,
| # or
[^\\] # a character which is not a backslash, followed by
(?:\\\\)* # two backslashes, zero or more times
) # end non capturing group, followed by
([a-zA-Z]) # a letter, captured, followed by
\b # a word break
@fge不是在Perl PHP的人!我也用JavaScript获得了它! – noob 2012-01-15 01:05:42
@micha我推出的正则表达式与PCRE(因此PHP)_and_ ECMA 262(因此JavaScript)兼容... – fge 2012-01-15 01:13:43
@fge你怎么知道你测试过它? – noob 2012-01-15 01:27:49