2012-03-09 3 views
-2
で始まっていません

正規表現マスターのための簡単なものです。正規表現は、

私がいないすべてのフレーズを一致させる必要があります。
「喫煙スペースを設置している」OR
は「喫煙エリアが配置されている」

入力:喫煙スペースが
何とかに位置している

吹き飛ばす
喫煙エリアは地下にあります
喫煙エリアは建物の裏にあります

マッチ:
何とか何とか何とか
喫煙スペース
喫煙スペースは建物の裏側に位置している地下にあるこのような

+0

これまでに^(!=?*?\ The \ b)(?=。*?\ bsmoking \ b)(?=。*?\ bareas \ b)(?= *?\ bare \ b)(?=。*?\ blocated \ b))。* $ – mduschak

+0

[正規表現を使用した文字列否定]の重複が可能です。(http://stackoverflow.com/questions/1153856/string-negation-正規表現を使用) – outis

答えて

2

何かがトリックを行う必要があります。

^(?!(The smoking areas are located\s?$)).+$ 

「喫煙場所はあります」とは基本的には一致します。 (否定的な先を見越して)

ジョセフの指摘のおかげで、私はその事例の1つを見逃していました。

+0

これは最後の行と一致しません。先読みの最後に '$ 'を追加する必要があります:http://regexr.com?3098k –

+0

あなたは絶対に正しいです、私は疑問を誤解しました。 – pcalcao

+0

パーフェクト。ご協力いただきありがとうございます! – mduschak

0

なぜあなたの言語でnot mystring.startswith('xyz')の等価物を使用してみませんか?正規表現は、この種の操作のためにかなり重量があります。