我有一个字符串:
$str = "\textaolig 3 \texthtbardotlessjvar \textrthooklong
B \textbenttailyogh ; \textinvomega q \textscaolig
. \textbktailgamma p \textinvsca r \textscdelta
D \textctinvglotstop ! \textinvscripta s \textscf
2 \textctjvar I \textlfishhookrlig t \textsck";
我想用正则表达式获取所有TeX命令(\ textaolig等)。我试过了:
\\([[a-z]\s]+)
但没有运气。有人可以帮助我吗?
亲切的问候,
答案 0 :(得分:4)
首先,你必须用单引号括起你的字符串,因为当你使用双引号时,如果使用反斜杠,它将尝试转义字符,这不是你的情况。
其次,您必须使用\\\\
来匹配反斜杠。
我不知道TeX命令,但我尝试匹配 [\w\s\.;]+
,所以如果需要,请更正:
$str = '\textaolig 3 \texthtbardotlessjvar \textrthooklong
B \textbenttailyogh ; \textinvomega q \textscaolig
. \textbktailgamma p \textinvsca r \textscdelta
D \textctinvglotstop ! \textinvscripta s \textscf
2 \textctjvar I \textlfishhookrlig t \textsck';
preg_match_all('/\\\\(?P<tex>\w+)/s', $str, $m);
var_dump($m["tex"]);