2016-03-27 11 views
1

の間くらいのドットに設定すると、このスクリプトの目的は、彼が一致し、交換する必要がありますいくつかの単語の自動Corrrection正規表現/私は正規表現でいくつかの問題があり、小文字と大文字の単語

例を行うことですが、次のとおりです。

Word.Word 

To:Word。 Word

wordWord 

To:単語。 Wordの

私は以下のスクリプト

function filter_string($string) { 
    $string = preg_replace("/([a-z])([A-Z])/", "$1. $2", $string); 
    $string = preg_replace("/([a-z]).([A-Z])/", "$1. $2", $string); 
    $string = str_replace("...", "&hellip", $string); 
    $string = str_replace("Games. Com", "GamesCom", $string); 
    $string = str_replace("Pv. P", "PvP", $string); 
    $string = str_replace("Pv. E", "PvE", $string); 
    $string = str_replace("Blizz. Con", "BlizzCon", $string); 
    $string = str_replace(". PvP", " PvP", $string); 
    $string = str_replace(". PvE", " PvE", $string); 
    return $string; 

でこれを行う。しかし、彼はまた、

Legendary Pictures zeigt uns das offizielle Poster zum Warcraft Film. 

そして

Legendary. Pictures zeigt uns das offizielle. Poster zum. Warcraft. Film. 

にそれを置き換えるに一致される何らかの理由で、私は得ることはありませんすべての点がどこから来ているのか、そしてなぜ彼がこれにマッチしているのか、誰かが私に何が間違っているかそれ。この1と

$string = preg_replace("/([a-z]).([A-Z])/", "$1. $2", $string); 

答えて

2

は、2番目の正規表現を置き換えるwhitoutドットスペース試し

$string = preg_replace("/\.(\w)/", ". $1", $string); 

あなたはおそらく(のためにそのトークンをドットをエスケープするのを忘れ任意の文字)。

+0

これは理由があるかもしれない=ありがとうございます。私はそれを逃げようとしたが、ドットは消えてしまったが、今は彼はwordWordを "word。Word"に変えようとはしない。彼は "word word"を作っているが、あなたは私にこれを解決する大きなヒントを与えた。ありがとうございます – Deex

+0

あなたは大歓迎です! –

0

$string = preg_replace("/([a-z])([A-Z])/", "$1.$2", $string); 

$string = preg_replace("/([a-z]).([A-Z])/", "$1.$2", $string); 
+0

こんにちは、私はこれを試しましたが、それは何も変更されませんでした。私はこのバグの部分は '$ string = preg_replace(" /([az])/( "$ 1 $ 2" $ string) "代わりに他のものとのマッチングHmm – Deex

+0

$ string = preg_replace(" /([az] /)./([AZ] /) "、" $ 1. $ 2 "、$ string);私は確信していませんが、働くことができます。 – Milor123

関連する問題