2017-12-23 10 views
1

後に続く文字に続く文字を見つける正規表現を持つ必要があります。平均は複数の同じ文字でも倍を除外します。私は、文字列から'e'の文字を見つけるために必要がある場合たとえば、正規表現は二重文字を除きます

を:それは二重の'e'

"only"を持っているので、一致していない>

"need""need only single characteeer"を、以下のようにそれぞれの単語の内訳で'e'を見つけるの平均であります'e'

つだけを持っているので>無 'e'

"single">一致するので一致しません0

"characteeer">は一致しません'e'

可能かどうかは不明です。どんな答えやコメントも高く評価されます。前もって感謝します。

UPDATE

たぶんまだ曖昧上記の私の質問。実際には私は単語の代わりに'e'文字を見つける必要があります。私はそれを二重の文字に置き換えるつもりです。すでに二重の文字を持っているものは置き換えられません。

主な目的は、'e''ee'に置き換えることです。しかし、すでに'ee'または'eee'を持っているもの、あるいはさらに'e'を持っているものは手つかずです。

+0

何 'neede'それが一致するかべきではないでしょうか? –

+0

どの言語ですか? – revo

+0

正規表現が必要です。私は実際にランランでやっています。 – Bayu

答えて

3

UPDATE:

(?<!e)e(?!e) 

は、次の電子を防止先行Eと否定先読みを防ぐために、負の後読みと電子ではなくマッチします。

Can be checked here

\b(([A-Za-z])(?!\2))+\b 

最後のマッチと同じになるように次の文字、グループ2を防止する負の先読みと、ワード(-ZA-Zの間に1つの以上の文字の配列)と一致、またはウィルキャプチャしていないグループを使用します。

/\b(?:([A-Za-z])(?!\1))+\b/g 

ただし、onlyは繰り返し文字が含まれていないため一致します。必要な場合は、フラグの大文字小文字を区別しない/iを追加することができa word containing e but no ee

/(?<![a-z])(?=[a-z]*e)(?![a-z]*ee)[a-z]+/gi 
+0

あなたは本当ですか? – revo

+0

は質問として少し曖昧でした –

+0

@NahuelFouilleul、** UPDATE **マークの後に私の説明をチェックしてください。私は混乱のために謝罪します。ありがとう。 – Bayu

2
/\b([a-df-z]*e[a-df-z]*)\b\s*/g 

に一致するように 。

説明:

/    : regex delimiter 
    \b   : word boundary 
    (   : start group 1 
    [a-df-z]* : 0 or more letter that is not "e" 
    e   : 1 letter "e" 
    [a-df-z]* : 0 or more letter that is not "e" 
)    : end group 1 
    \b   : word boundary 
    \s*   : 0 or more spaces 
/g    : regex delimiter, global flag 

あなたが使用しているどの言語与えなかったとして、ここではperlスクリプトは次のとおりです。

my $str = "need only single characteeer"; 
my @list = $str =~ /\b([a-df-z]*e[a-df-z]*)\b\s*/g; 
say Dumper\@list; 

出力:

$VAR1 = [ 
      'single' 
     ]; 

そしてPHPスクリプトT:

$str = "need only single characteeer"; 
preg_match_all("/\b([a-df-z]*e[a-df-z]*)\b\s*/", $str, $match); 
print_r($match); 

出力:

Array 
(
    [0] => Array 
     (
      [1] => single 
     ) 

    [1] => Array 
     (
      [1] => single 
     ) 

) 
+0

私は正規表現が必要です。私は実際に移動を使用しています。 ** UPDATE **マークの後に私の説明をチェックしてください。主な目的は、文字を全単語でしか見つけないことです。混乱させて申し訳ありません。ありがとう。 – Bayu

関連する問題