2011-01-27 5 views
0

は、私は何があるURLに大文字が1つ以上あるかどうかを確認する正規表現コードは何ですか? (PHP)SEOの目的のために

http://www.Domain.com/Jimmy_Smith

http://www.domain.com/jimmy_smith

にのようなものから、コードの行を変更するように指示されました少なくとも1つの大文字のletteがあるかどうかを検出するコード行rのURL?

...続きを読む私は正規表現がおそらくこれを行う最も効率的な方法だと知っていますが、Regexにはあまり経験はありません。

+2

が重複する可能性:

を文字列は、それが自己を小文字だと等しくない場合、それは少なくとも一つの大文字の文字を持っていますPHPで文字列に大文字が1つ含まれているかどうかを検出する](http://stackoverflow.com/questions/4426327/how-to-detect-if-string-contains-1-uppercase-letter-in-php) – Greg

+1

小文字にしたいのですが、小文字でないかどうかを知る必要があるのはなぜですか?それにかかわらず、はるかにきれいにし、コードの一行をstrtolowerするだけです。 – tobyodavies

+0

大きなポイント - 私はこれを前にしなければならなかったに違いない。 –

答えて

2
if (preg_match('/[A-Z]/', $url)) { 
    ... has one upper case char ... 
} else { 
    ... no uppercase chars at all ... 
} 
+0

パーフェクト - ありがとうございます。 –

4

私はregexが最良の方法ではないと言います。なぜstrtolowerを使用しないのですか?あなたが正規表現は必要ありません

http://php.net/manual/en/function.strtolower.php

+0

これは、リバースループが起こらないためです。 –

+0

parse_url()を実行した後、strtolower()を実行してhttp_build_url()を使用してurlを再構築してください。これはより多くの指示のように思えますが、regexpよりもきれいです。 –

+0

+1正規表現は高価です。可能であれば、特に小規模な作業では避けてください。 – Mahn

1

:[方法の

function hasUpper($x) 
{ 
    return strtolower($x)!=$x; 
} 
関連する問題