如何使用正则表达式提取百分比文本?

时间:2017-01-06 13:54:48

标签: regex

从文本文件中我必须找到包含包含百分比(数字+%或百分比)的所有行,因此我创建了一个正则表达式,但它无法正常工作。

正则表达式字符串:\b(\d+(%|(percent)))\b

我的输入是

  • 423%
  • 423%:
  • 10percent
  • 10percent:

对于前两种情况,它不匹配,但对于第三和第四种情况有效。

我的要求是识别数字+%或百分比的行,并且周围应该没有alphabate或数字

2 个答案:

答案 0 :(得分:5)

%之后的单词边界阻止它在非单词字符之前匹配。

使用

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

请参阅regex demo

模式匹配:

  • \b - 领先的单词边界
  • \d+ - 1+位数
  • (?:%|percent\b) - 两种选择之一:
    • % - 百分号
    • percent\b - 单词percent后跟单词边界。

答案 1 :(得分:0)

你可以试试这个:

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

返回在所需值之前和之后都有空格或标点符号的值。