0

PHP でプログラムを作成しています。2 つのシンボル セットの間にあるデータを検索し、それを文字列に変換する必要があります。例えば

$main = "Hello, everyone, my name is (-Jack-)"
$string = regex_function('(-', $main) #should return "Jack"

正規表現関数などを使用して、その出力を取得するにはどうすればよいですか

4

2 に答える 2

1

これを試して :

$main  = 'Hello, everyone, my name is (-Jack-)';

preg_match_all('/\(\-(?P<name>.*)\-\)/', $main, $matches);

echo "<pre>";
print_r($matches);

echo $matches['name'][0];
于 2013-03-08T07:22:31.877 に答える
1

この関数は として知られていpreg_match_all()ます。

$main = "Hello, everyone, my name is (-Jack-)";
preg_match_all('/\(\-(?P<name>\w+)\-\)/', $main, $string);
print_r( $string );

codepadのサンプル出力。


@Prasanthのコメントを参照してください。これはより良い正規表現です。

$main = "Hello, everyone, my name is (-Jack stuff-) some more text (-John stuff-)";
preg_match_all('/\(\-(?P<name>[\s\w]+)\-\)/', $main, $string);
print_r( $string );

コードパッドリンク。

于 2013-03-08T07:25:56.690 に答える