正则表达式,用于查找包含字符和数字的字符串

时间:2019-05-06 21:24:06

标签: regex string regex-greedy

我正在尝试匹配部分编号与普通文本混合的字符串。

以下是一些示例。

  1. 牵引Cntrl Ecu,Gl3t-19H378-Ac
  2. 总成,Pwr,经测试的Gd,Priv-M50t3
  3. 左,后,伯恩·谭,Pwr,4DR,Mju1
  4. T-case Ecu,56029590AE
  5. 右盲点模块284K0 9HS0F

在这些示例中,我试图进行匹配。

  1. Gl3t-19H378-Ac
  2. Priv-M50t3
  3. Mju1
  4. 56029590AE
  5. 284K0和9HS0F

我在.Net中,这是我一直在使用的Regex。

(\b[a-zA-Z0-9][a-zA-Z0-9\-]{1,32}(\b|$)(?<=[0-9]))

如果匹配以数字结尾,它将满足我的需要。我想要的规则是匹配单词边界之间的任何字符串,该字符串既可以是所有数字,也可以是数字和字符混合的字符,但绝不仅仅是字符。

1 个答案:

答案 0 :(得分:2)

这应该做到:

t.df.2=t.df[c(c2)]
nrow(t.df.2)
ncol(t.df.2)

t.df.4=t.df[c2]
nrow(t.df.4)
ncol(t.df.4)

t.df.5=t.df[ ,c2]
nrow(t.df.5)
ncol(t.df.5)

如果您需要将长度限制为最多32个,请提前看一下:

\b[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b

如果下划线字符也可以,则可以使用\b(?=[a-zA-Z0-9-]{1,32}\b)[a-zA-Z0-9-]*\d[a-zA-Z0-9-]*\b 代替[\w-]