私はこれに慣れていません.VBでの10:26 AMの正規表現パターンは何ですか?時間までではなく、固定時間のパターンが必要です. これについて助けてください。
2 に答える
すべての文字列は有効な正規表現でもあります (使用している正規表現の方言で特別な意味を持つ文字をエスケープすると)。したがって、正規表現を使用して固定文字列を検索する場合は、その固定文字列を使用してください。
特に、固定時間入力には特殊文字が含まれていないため、エスケープする必要さえありません。
"10: 26 AM"
真剣に、それだけです。これは、文字列に正確に一致する有効な正規表現であり、それ以外にはありません。ただし、固定文字列に一致させるだけの場合は、正規表現を使用する必要はまったくなく、通常の文字列検索を使用した方がわずかに高速になる場合があります (ただし、必ずしもそうとは限りません!)。VBScript には、InStr
このための関数があります。
str = "I came home at 10: 26 AM and made lunch."
position = InStr("10: 26 AM", str)
入力内のスペースを無視したい (または任意の場所でスペースを許可したい) 場合があります。その場合、\s*
関連する場所に挿入できます。これは、その場所の任意の数のスペース (ゼロ以上) に一致します。修正された式は次のようになります。
"10\s*:\s*26\s*AM"
最後に、テキストに time だけが含まれていることを確認したい場合があります。その場合、begin ( ) および end ( ) アンカーを使用して、周囲に他のテキストがない場合にのみ文字列が一致するようにすることができます。^
$
"^\s*10\s*:\s*26\s*AM\s*$"
(ただし、ここでも、テキストの前後にスペースを入れることができます。許可されていない場合は、これを削除することをお勧めします。)
指定された時間形式 (10: 26 AM) に一致させるには、次を使用できます。
(0?[1-9]|1[012])(: [0-5]\d) (AM|PM)
参考までに、コロンの後に空白があります...