正则表达式提取字符串的一部分

时间:2012-11-12 07:55:03

标签: php regex string

我有来自核心银行系统的以下交易格式

This is a <test>  and only <test> hope <u> understand

从我想要的地方

<test><test><u> (along with <>)

使用简单的子字符串我可以做到这一点,但它会太慢..有没有办法在< and >之间使用正则表达式函数捕获文本?

2 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法是使用preg_match_all()然后将join()结果组合在一起形成最终字符串:

function get_bracketed_words($str) 
{
    if (preg_match_all('/<[a-z]+>/', $str, $matches)) {
        return join('', $matches[0]);
    }
    return '';
}

答案 1 :(得分:0)

如果你使用它,它不应该太慢(这里以Perl代码为例):

while (my $line = <FILE>) {
    my ($request) = ($line =~ /RequestArray:(.*)/);
    next unless $request;
    # here, you can split $requests to sub-pieces using another regex
    # ...
}