2017-01-06 15 views
1

テキストファイルから、のパーセンテージ(数字+%またはパーセント)を含むすべての行を見つけなければなりませんこれに対して私は正規表現を作成しましたが、正しく動作しません。正規表現を使用してパーセントテキストを抽出するには?

正規表現文字列:\b(\d+(%|(percent)))\b

と私の入力は

  • 423パーセント
  • 423パーセントです:
  • 10percent
  • 10percent:

第一2例にとって一致しませんが、3番目とそれは動作します。

私の要件は、非単語の文字の前に一致するのを防止

+1

パーセント記号をエスケープしてみてください:\% – Seb

+0

thnx :)すでに動作していません – madan

+0

ヒント:正規表現がhttps://regex101.com/で動作するかどうかを確認できます。 – Koen

答えて

3

ワード境界%後にはalphabate又は数があってはならない番号+%またはパーセントとその周りを有するラインをidentfyすることです。

使用

\b\d+(?:%|percent\b) 

を参照してくださいregex demo

パターンが一致します。

  • \b - 大手ワード境界
  • \d+ - 1+桁
  • (?:%|percent\b) - 二つの選択肢の1:
    • % - パーセント記号
    • percent\b - 単語percentは、ワード境界で続きます。
+1

ありがとうございました。訂正と代替手段の発見に多くの時間を費やす – madan

0

あなたはこの試みることができる:これが所望の値の前と後の両方の空白や句読点のいずれかを持っている値を返します

[^a-zA-z]((\d+)((\u0025)|(percent)))[^a-zA-z0-9]

を。

関連する問題