我正在使用日期轉換函數(如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