删除所有字符串实例和3位数字

时间:2014-04-16 05:08:22

标签: regex

我试图使用正则表达式删除包含3个我不认识的数字的字符串实例。

例如,如果字符串是this is an example536 string with 2 example725,我想要" example536"和" example725"被删除。

我知道正则表达式的基础知识,以摆脱"示例"但不知道如何摆脱数字。有人可以帮忙解决这个问题。

5 个答案:

答案 0 :(得分:0)

d{3}用于3个数字,因此整个正则表达式应为:

/\w+\d{3}/g

http://regexr.com/v1/?38lcq

答案 1 :(得分:0)

假设您的数字始终位于最后,此正则表达式应该适用于您:([^\s]+?\d{3})/g,因为它将匹配任何非空白字符,后跟3位数字。

如果不是这种情况(你不知道字符串中的数字会出现在哪里)那么我们就会遇到一些问题,因为我们需要为所有3种可能情况定义一个模式:

  1. 数字位于子字符串的中间。 2个数字位于子字符串的开头。
  2. 数字位于子字符串的末尾。
  3. 这将导致创建类似的内容:(([^\s]+?\d{3}[^\s]+?)|(\d{3}[^\s]+?)|([^\s]+?\d{3}))/g

答案 2 :(得分:0)

对于我的确切问题,我应该将此包含在问题中,但我需要删除width="xxx"的实例

我认为正则表达式为/width="[0-9][0-9][0-9]"/g

答案 3 :(得分:0)

从左侧和右侧

删除三位数字和非空格的所有内容
echo 'this is an example536 string with 2 example725' | sed 's/[^[:space:]]*[[:digit:]]\{3\}[^[:space:]]*//g'

答案 4 :(得分:0)

如果它是PHP,则替换将执行此操作:

$s = "this is an example536 string with 2 example725"
$r = preg_replace('/\w+[\d]+ ?/', '', $s);
//outputs: this is an string with 2 

匹配你想要的一般正则表达式。

/\w+[\d]+/