1

preg_match次のようなPHPの関数を使用して、2種類の文字列を一致させようとしています。

  • '_mything_to_newthing'
  • '_ひとこと'
  • '_mything_to_newthing_and_some_stuff'

上記の 3 番目の部分では、「mything」と「newthing」のみが必要なので、3 番目の部分の後に続くものはすべて、ユーザーが追加できるオプションのテキストです。上記の場合、理想的には正規表現から外れるでしょう。

  • 「神話」、「新しいもの」
  • 'ひとこと'
  • 「神話」、「新しいもの」

可能であれば、パターンは a-zA-Z0-9 と一致する必要があります :-)

私の正規表現はひどいので、助けていただければ幸いです!

ありがとうございます。

4

1 に答える 1

1

あなたが_デリミテッドテキストについて話していると仮定すると:

$regex = '/^_([a-zA-Z0-9]+)(|_to_([a-zA-Z0-9]+).*)$/';

$string = '_mything_to_newthing_and_some_stuff';
preg_match($regex, $string, $match);
$match = array(
    0 => '_mything_to_newthing_and_some_stuff',
    1 => 'mything',
    2 => '_to_newthing_and_some_stuff',
    3 => 'newthing',
);

それ以上のことについては、詳細とより良いサンプルテキスト/出力を提供してください

編集:あなたはいつでもただ使うことができますexplode

$parts = explode('_', $string);
$parts = array(
    0 => '',
    1 => 'mything',
    2 => 'to',
    3 => 'newthing',
    4 => 'and',
    5 => 'some',
    6 => 'stuff',
);

フォーマットが一貫している限り、それはうまくいくはずです...

于 2011-01-21T23:31:10.833 に答える