抱歉,我是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 :(得分:1)
您缺少角色类的量词。
[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]+>/
另外:/
如果您还将其用作分隔符,则只需要进行转义。 /...\/.../
vs @.../...@
。