2017-12-13 14 views
0

ここでRegexの初心者を完了してください。これは愚かな質問であれば私を許してください。私は、フォームのCSVファイルの行を持っている:Regex - CSV文字列内の列名を一致させる

test_id|column1|column10|column11|column101|

と私はPythonで、次のいずれかの最初の出現にマッチし、文字列内の位置を取得できるようにする必要があります。

column1|, |column1| or |column1 

https://regexr.com/[\|]?column1[\|]?を使用してみましたが、どのようになっているのかはわかりましたが、すべてがその中の列1と一致しています。それについてどうすればいいですか?

編集:PythonでRegexを使う必要がないというコメントに完全に同意します。しかし、正規表現を使ってパターンをマッチさせたいのであれば、どうすればいいでしょうか?

+0

? – SuperStew

+3

'line.split( '|').index( 'column1')'を試してみてください。これはあなたの列のリストに 'column1'の位置を与えます。何も見つからなければ 'ValueError'を送出します。 –

+0

なぜこれの正規表現を使用しますか? – hop

答えて

1

そう、あなたが文字列として行を保存することを言っている場合:

str1 = "test_id|column1|column10|column11|column101|" 

次に、あなたはちょうどあなたが探している各発生のインデックスを見つけるために、index()メソッドを使用することができます。

strs = ["column1|", "|column1|", "|column1"] 

for s in strs: 
    print(str1.index(s)) 

明らかにエラーチェックが必要ですが、インデックスが返されます。

この版画:あなたは、「単一の非アルファベット文字が続くcolumn1の」使用することはできません

8 
7 
7 
関連する問題