2

以下の文字列を指定します。

';\n;20121110_160816\n;www.google.com\n\n; Test\na=5\n\nend\n'

次のフィールドとして文字列を解析する正規表現は何ですか? :

;\n
;20121110_160816\n
;www.google.com\n
; Test\n

私の最初の失敗した試みは以下の通りです:

import re
m = re.search(';.+?\\n', mystr)

出力:

m.group()
';20121110_160816\n'

ありがとう。

4

1 に答える 1

1
import re
re.findall('(;.*)\n', s)

式のウォークスルー:

  1. あなたのアイテムは「;」で始まります -> ';
  2. その後に任意の数の実質的な任意の記号が続きます -> ".*" "."=任意の記号 "*"=0-無限回
  3. 改行で終わります -> "\n"
  4. 読みやすくするために、繰り返しグループを括弧に入れます

ただし、この場合は次のことも考慮する必要があります。

s.split() は、引数が追加されていない場合、改行で自動的に分割されます。

更新- コメントにコメントする ;-)

疑問符に関するあなたの質問を本当に理解しているかどうかわかりません。しかし、一般に、アスタリスク、疑問符、およびプラス記号は量指定子です。、および - キーと同様に、それら自体には意味がなく、単独ではほとんど価値がありません。ただし、他のキー/文字と組み合わせて、それらの動作を変更するか、数量詞の場合は、前の文字/グループを繰り返すかどうか、および/または何回繰り返すかを指定します。

于 2012-11-11T06:13:11.407 に答える