2017-08-23 34 views
1

データフレームに次の形式の文字列があります。pyspark regexの文字列の一致

abc.T01.xyz 
abc.def.T01.xyz 
abc.def.ghi.xyz 

この文字列の値がこの式に一致する行をフィルタリングする必要があります。

[a-zA-Z].T[0-9].[a-zA-Z] 

私は、次のコマンドを使用していたが、それは私にも、このように見える文字列を与えている:[a-zA-Z].[a-zA-Z].T[0-9].[a-zA-Z]私は私の結果ではしたくありません。

mydf2 = mydf1.where('col1 rlike ".*\.T.*\..*"') 
mydf2.show() 

私の正規表現には何かがありません。

答えて

0

ちょうどあなたの要件を翻訳の代わりに、ドット・スター・スープを使用してアンカーを追加します。

# [a-zA-Z].T[0-9].[a-zA-Z] 
mydf2 = mydf1.where('col1 rlike "^[a-zA-Z.]+\.T[0-9]+\.[a-zA-Z.]+$"') 

a demo on regex101.comを参照してください。
文字クラスにドットを追加しました(これは必須ですか?)そうでない場合は、2番目の文字列は一致しません。これがあなたが望むものでない場合は、クラスから削除してください。

+0

ありがとうございました。それは魅力のように働く。 – akn

関連する問題