正規表現操作に固執しています。私はオプションの正規表現操作
a I get output '11 Oct 1990'
b I get output 'Oct 1990'
c I get output '1990'
のために、このような表現を書きたい、私は
a = '(sam was born on 11 Oct 1990)'
b = 'sam was born on Oct 1990'
c = 'sam was born on 1990'
以下に示すように、b、cの3つの文字列を持っている文字列
で日付を見つけるために、オプションの式を記述しようとしています
aとbの正しい出力を取り出すことができますが、私はできません。しかし、私がCを
に変更すると、c = 'sam was born on 1990' -- with two spaces between on and 1990
私は正しい出力を取り出します。
私が使用して正規表現は次のとおりです。
print re.findall(r"((11)?[\s\(](((Nov|Oct))?([\s\(-]|,\s)(1990|1991)))", a)
私はフェッチ出力は次のとおりです。
Output for a : [('11 Oct 1990', '11', 'Oct 1990', 'Oct', 'Oct', ' ', '1990')]
Ouptut for b : [(' Oct 1990', '', 'Oct 1990', 'Oct', 'Oct', ' ', '1990')]
Ouptut for c : []
任意の助けをいただければ幸いです。ありがとう
regex101.comのような正規表現の設計に役立つサイトをご覧ください。 – asimoneau
オンライン正規表現サイト、特にregexr.comとregex101.comでの時間。彼らは肥大化し、遅く、エラーが発生します。 – sln