文字列から 3 つのセグメントを抽出しようとしています。私は正規表現が特に得意ではないので、私がやったことはおそらくもっとうまくできると思います。
次の文字列の太字部分を抽出したいと思います。
SOMETEXT: ANYTHING_HERE (旧 = ANYTHING_HERE、新 = ANYTHING_HERE )
いくつかの例は次のとおりです。
ABC: Some_Field (旧=,新=123)
ABC: Some_Field (旧=ABCde,新=1234)
ABC: Some_Field (旧=Hello World、新=Bye Bye World)
したがって、上記は次の一致を返します。
$matches[0] = 'Some_Field';
$matches[1] = '';
$matches[2] = '123';
これまでのところ、次のコードがあります。
preg_match_all('/^([a-z]*\:(\s?)+)(.+)(\s?)+\(old=(.+)\,(\s?)+new=(.+)\)/i',$string,$matches);
上記の問題は、文字列の個別のセグメントごとに一致を返すことです。それが理にかなっている場合、一致をキャッチして保存せずに、正規表現を使用して文字列が正しい形式であることを確認する方法がわかりませんか?
それで、私の質問は、まだ明確でない場合、上記の文字列から必要なセグメントだけを取得するにはどうすればよいですか?