2017-08-14 12 views
2

Powershellスクリプトでは、月名または省略形の前にスペースを見つけるために正規表現を作成しようとしています(例:Jan、January、Feb、Februaryなど)。私はこれを使用して、-replace演算子を駆動しています。私はこの正規表現を大部分は構築しましたが、Jane、Marcusなどの作業の前に、1月、1月、3月などの正確な単語の前にスペースを見つけることもできます。何か案は?月の名前または省略形の前にスペースを見つけるための正規表現

[ ](?=Jan|(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?) 

ご協力いただきありがとうございます。

+0

おそらくスペースをエスケープする必要があります: '[\]' –

+0

あなたは月に続くかもしれないものを定義する必要があります。 '\ s'や' \ w'や '\ b'など – wOxxOm

答えて

3

あなたはそれを大事にしています。

\s(?=(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b) 

Demo.

注:欠落している部分が長い単語の一致するプレフィックスを防ぎ、エンド・オブ・ワードアンカー\b、あるこれも\s[ ]を置き換え、また、タブと一致し、改行

関連する問題