1

次のような文字列があります。

[numbers]firstword[numbers]mytargetstring

以下を考慮して「targetstring」を抽出する方法を知りたいです。

a.) 数字は数字です。たとえば、数字を含む完全な文字列:

12firstword21mytargetstring

b.) 数値は任意の桁にすることができます。たとえば、上記はそれぞれ 2 桁ですが、次のように任意の桁数にすることができます。

123firstword21567mytargetstring

桁数に関係なく、「mytargetstring」を抽出することにのみ関心があります。

ちなみに「firstword」は固定で、どの組み合わせでも変わりません。

私は正規表現があまり得意ではないので、PHP を使用してこれを行う方法を提案できる強力なバックグラウンドを持つ人に感謝します。どうもありがとう。

4

6 に答える 6

2

これでできます(またはする必要があります)

$input = '12firstword21mytargetstring';

preg_match('/\d+\w+\d+(\w+)$/', $input, $matches);

echo $matches[1]; // mytargetstring

それは次のように分解されます

\d+\w+\d+(\w+)$

\d+- 1 つ以上の数字

\w+- 1 つ以上の単語文字が続く

\d+- 1 つ以上の数字が続く

(\w+)$- 文字列を終了する 1 つ以上の単語文字が続きます。ブラケットは、これを抽出したいグループとしてマークします

于 2013-06-24T07:26:37.367 に答える
1

のようにしてみてください。

print_r(preg_split('/\d+/i', "12firstword21mytargetstring"));
echo '<br/>';
echo 'Final string is: '.end(preg_split('/\d+/i', "12firstword21mytargetstring"));

http://writecodeonline.com/php/でテスト済み

于 2013-06-24T07:30:03.153 に答える