Preg_match返回未知修饰符


preg_match returning unlnown modifier

对不起,我是php新手。我试图从一个字符串匹配一个模式,但无论我做什么,我没有得到匹配。我想我做错了。此外,有时我会得到"未知修饰符"错误。下面是主题字符串:

<soap:envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:body>
<sendtransactionsactionresponse xmlns="http://tempuri.org/">
<sendtransactionsactionresult>113</sendtransactionsactionresult>
</sendtransactionsactionresponse>
</soap:body>
</soap:envelope>  

我试图匹配整个<sendtransactionsactionresult>XXX</sendtransactionsactionresult>模式,其中XXX是3位数字字符。以下是我到目前为止尝试过的模式:

@<sendtransactionsactionresult>[0-9]<'/sendtransactionsactionresult>@i
/<sendtransactionsactionresult>[0-9]<'/sendtransactionsactionresult>/
@('<[a-z]'>[0-9]'<'/[a-z]'>)@i
/<[a-z]>[0-9]</[a-z]>/
and many many more..  

没有一个匹配…我做错了什么?

您的字符类缺少量词。

[0-9]将只匹配单个数字。如果需要匹配一个或多个,则需要使用[0-9]+

@<sendtransactionsactionresult>[0-9]+</sendtransactionsactionresult>@i
/<sendtransactionsactionresult>[0-9]+<'/sendtransactionsactionresult>/
@(<[a-z]+>[0-9]+</[a-z]+>)@i
/<[a-z]+>[0-9]+<'/[a-z]+>/

Also: /只有在您还将其用作分隔符时才需要转义。/...'/.../ vs @.../...@ .