文字列sがあるとします。 sが次のような特徴を持つ場合、Trueを返す正規表現を使用して関数を記述したいと思います。正規表現と一致する正規表現
- 先頭の空白を無視します。
- 1文字目のSは、次のaからz、AZ、0-9の0以上を有する、および/または_できた後、ステップ1の後、Sは以下のaからz、A〜Z、または_
- のいずれかで開始することができます
- は、1つ以上の末尾の空白文字を持つことができます。
私は間違っていますか?
import re
def test_s(s):
return bool(re.search("[A-Za-z_\s]{1}[A-Za-z0-9_]*[\s]*$",s))
アップデート: 私は(それは私の最後の2つのテストケースをキャプチャするために失敗した)以下のソリューションを試してみました:
CASE:リターン・ブール(re.search(R '\ *は[A-はZa - SはZ _]私は、これは動作するはずだと思う))
TESTLIST = ['__This_Is_a_StringThatShouldWork' , ' SoIsThis1 ' , '4getaboutThis1', '7his_ShouldReturnFalse']]
for s in TESTLIST:
print(is_var(s))
[出力]
True
True
True (Should be False)
True (Should be False)
一つ以上、彼は – nkprince007
を持つことができ、いないん言ったように。違いがある – James
James:あなたの提案に基づいてコメントを更新しました。最後の2つの例がFalseの代わりにTrueを返す理由は何ですか? – DeeeeRoy