正则表达式:获取TeX命令

时间:2013-03-25 23:41:19

标签: php regex tex

我有一个字符串:

$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]+)

但没有运气。有人可以帮助我吗?

亲切的问候,

1 个答案:

答案 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"]);