1

のようなフレーズを抽出するための正規表現を書いています#Question1#または#Question125#のようなhtml文字列から

患者名 #Question1#、患者は #Question2#、患者の性別は #Question3#、患者は先月 #Question4# の飲酒をしています。彼の生年月日は #Question5# です

式の前半は単に#Question.

一致するフレーズを見つけたら、文字列から数字だけを抽出するにはどうすればよいですか? たとえば、#Question312# のように、312 を取得したいだけですか?

なにか提案を?

4

2 に答える 2

4

あなたが探している正規表現は

/#Question[0-9]+#/

数値を抽出する必要がある場合は、その[0-9]+部分を括弧で囲むだけです

/#Question([0-9]+)#/

グループにしてます。キャプチャされたグループをどのように使用するかは、特定の正規表現の実装 (例: python、perl、javascript ...) によって異なります。たとえば、Pythonでは、これらすべての質問を、リストからの対応する回答に置き換えることができます

answers = ["Andrea", "Griffini"]
text = "My first name is #Question1# and my last name is #Question2#"
print re.sub("#Question([0-9]+)#",
             lambda x:answers[int(x.group(1)) - 1],
             text)
于 2013-09-11T05:35:24.100 に答える
2

あなたが探しているのは次のとおりだと思います:

#Question[0-9]+#

  1. #質問
  2. このクラスの任意の文字: [0-9]、1 回以上の繰り返し
  3. #
于 2013-09-11T05:50:10.177 に答える