2011-01-24 7 views
1

私は学校用のWebアプリケーションを開発しており、class_nameとcourse_nameのようなものがあります。 course_nameはclass_nameの親であるため、class_nameにはcourse_nameが含まれている必要があります。例:正規表現を使用して文字列内のシンボルを検出するにはどうすればよいですか?

course_name = "Weeklies" 
class_name = "Weeklies talks with Superstars" 

上記のケースは完璧で正確です。

しかし、class_name(\ b \ b)に設定した単語境界の正規表現を混乱させる記号でcourse_nameを作成することがあります。 course_nameに正規表現のメタ文字を付けると、シンボルは単語ではないため、単語境界は毎回Falseを返します。

QUESTION:COURSE_NAMEはPythonでシンボル/メタ文字が含まれており、それがない場合、私は真の他にFalseを返すようにしたい場合は

どのようにチェックしますか?

-mark

+0

これはかなり匂いがしません。 (1)この情報からデータベースを構築していますか?データをcsvファイルの行に入れて直接ロードできますか? (2)このデータはコンフィギュレーションファイルにありますか?おそらく.INIファイルですか? ConfigParserを使用して解析するか、ファイルをjsonとして記述します。 (3)開発者がこのデータを何らかの形で管理しているのか、それともユーザーによって作成されているのですか? – hughdbrown

+0

これはユーザーによって制御されます。したがって、ユーザーがcourse_nameとして "Weekelies(Screening)"を作成し、my \ bWeeklies(Screening)\ b正規表現を使用した場合、かっこは単語ではないので失敗します。文字列内のシンボル/メタキャラクタを検出するにはどうすればよいですか?私は、ユーザがシンボルとメタキャラクタを持つcourse_nameを入力しないようにしたい。 – Mark

答えて

1
+0

こんにちはイグナシオ、あなたの素早い返信をありがとう。バックスラッシュでない文字列以外の文字列を返したいとは思わない。メタキャラクタが含まれているかどうかを確認したい上記の私のコメントを参照してください – Mark

0

これはちょうど、適切な文法と正規表現に置き換える...汎用ソリューションの一種です。

if not re.match(str, r'[\w\d\ ]+'): 
    # valid 
関連する問題