◀一般トップへ
  • 5862 正規表現の表し方
    • 5864 RE: 正規表現の表し方
      • 5865 Re2: 正規表現の表し方
        • 5866 Re3: 正規表現の表し方
          • 5867 Re4: 正規表現の表し方
  • [5862] 正規表現の表し方 超初心者 2007年02月24日 01:45

    次の文では、記号(?,.など)の前にスペースが入っているのですが、このスペースを削除するとき、置換前を「スペース(.|,|?|!|"|'|:|;|)」と設定すると、置換後はどのように設定したらよいでしょうか?
    Have you lived in this town for a long
    time ? --- Yes , I have .
    • [5864] RE: 正規表現の表し方 げんた 2007年02月24日 02:19

      >タイトル: RE: 正規表現の表し方
      >発言者: 超初心者
      >次の文では、記号(?,.など)の前にスペースが入っているのですが、このスペースを削除するとき、置換前を「スペース(.|,|?|!|"|'|:|;|)」と設定すると、置換後はどのように設定したらよいでしょうか?
      >Have you lived in this town for a long
      >time ? --- Yes , I have .

      一文字の羅列なら,(|)より[]を使った方が良いと思います.?や.のエスケープが不要になりますし.

      置換前: \s+([.,?!"':;])
      置換後: $1
      • [5865] Re2: 正規表現の表し方 超初心者 2007年02月24日 10:04

        ▼ げんたさん
        > 置換前: \s+([.,?!"':;])
        > 置換後: $1

        げんたさん、ありがとうございます。
        記号の前に、スペースが一つ以上であれば、「\s+」で、
        スペースが一つの場合であれば、「\s」という理解でよいでしょうか?
        お手を煩わせすみません。
        • [5866] Re3: 正規表現の表し方 げんた 2007年02月24日 11:00

          >記号の前に、スペースが一つ以上であれば、「\s+」で、
          >スペースが一つの場合であれば、「\s」という理解でよいでしょうか?
          はい.

          \sは空白文字にヒットするので,スペースだけを対象とするなら普通にスペースを使った方が良いかも.
          +は一回以上の繰り返しです.
          • [5867] Re4: 正規表現の表し方 超初心者 2007年02月24日 11:34

            ▼ げんたさん
            すっきりしました。ありがとうございます。