2017-02-22 20 views
0

としてグループ1を取得し、私はこれはそれを行うだろう正規表現は、「完全一致」以下の例を考える/グループ0

Eg. 1: some standard text. Bugs Bunny [email protected] 0411111111 more standard text 
Eg. 2: some standard text. Bugs The Bunny [email protected] 0411111111 more standard text 
Eg. 3: some standard text. Bugs-Bunny [email protected] 0411111111 more standard text 
Eg. 4: some standard text. Bugs [email protected] +6141 111 111 more standard text 
Eg. 5: some standard text. Bugs o'Bunny [email protected] 0411111111 more standard text 

のメールアドレスを取得したいですグループ1である必要があります。グループ0または完全一致である必要があります。この正規表現は、他のすべての正規表現が完全一致として結果を生成するコードによって動的に作成されるためです。

私はグループについて十分に分かりませんが、私はsome standard text.ビットの後に最初のメールアドレスが必要であると知っています。私が言ったように、それは完全一致である必要があります。

答えて

0

正規表現を([^ \ s] + @ [^ \ s] +)に変更すると、完全な結果はメールアドレスだけになります。

+0

を私はフルテキストで電子メールアドレスがあるので、 '標準テキストの後ろに最初の電子メールアドレスが必要です。 – Warren

+0

基本的には、「標準的なテキスト」と一致させることを求めていますが、それを完全な結果に表示しないでください。私はこれが可能だとは思わない。 – dimab0

+0

私はそれを恐れていた... – Warren

0

グループ0 は、フルマッチです。です。

正規表現を[^\s][email protected][^\s]+に変更すると、すべての例の電子メールアドレスと一致します。 https://regex101.com/r/SQL9Ul/1

名前の長さがさまざまなため、肯定的な裏返しを使用して電子メールアドレスを完全一致として一致させることはできません。

あなたが行うことができ
0

$lines = array(
"some standard text. Bugs Bunny [email protected] 0411111111 more standard text ", 
"some standard text. Bugs The Bunny [email protected] 0411111111 more standard text", 
"some standard text. Bugs-Bunny [email protected] 0411111111 more standard text", 
"some standard text. Bugs [email protected] +6141 111 111 more standard text", 
"some standard text. Bugs o'Bunny [email protected] 0411111111 more standard text ", 
); 
foreach($lines as $line) { 
    preg_match('/some standard text..+?\K\[email protected]\S+/', $line, $m); 
    var_dump($m); 
} 

  • \Kは、我々がここまで遭遇してきたすべてを忘れてしまったことを意味します。すべてのNON空白のため
  • \Sスタンド、それは[^\s]

はその後、我々は$m[0]

出力で唯一の電子メール持っていることと同じです:例では、私はそれを得る

array(1) { 
    [0]=> 
    string(14) "[email protected]" 
} 
array(1) { 
    [0]=> 
    string(14) "[email protected]" 
} 
array(1) { 
    [0]=> 
    string(20) "[email protected]" 
} 
array(1) { 
    [0]=> 
    string(20) "[email protected]" 
} 
array(1) { 
    [0]=> 
    string(14) "[email protected]" 
} 
関連する問題