正则表达式 - 如何确保字符串包含单词和数字

时间:2013-11-14 13:01:14

标签: regex

我需要一些Regex的帮助。 我希望正则表达式验证以下句子:

fdsufgdsugfugh PCL 6
dfdagf PCL 11
fdsfds PCL6
fsfs PCL13
kl;klkPCL6
fdsgfdsPCL13
一些字符,比PCL和6或更多的字符。 如何做到这一点?

4 个答案:

答案 0 :(得分:2)

我会选择这样的东西: ^(.*)(PCL *)([6-9][0-9]*|[1-5][0-9]+)$

含义:

  • (.*) =一些字符
  • (PCL *) =然后是带有可选空格的PCL
  • ([6-9][0-9]*|[1-5][0-9]+)然后是6或更多数字

答案 1 :(得分:0)

bash

EXPR=^[a-zA-Z]\+ *PCL *\([6-9]\|[0-9]\{2,\}\)

翻译:

  • 行首先至少出现一个字符(忽略上限)
  • 任意数量的空格,PCL,任意数量的空格
  • 6或9之间的数字,或至少2位数的数字

这个与grep "$EXPR" file.txt类似的表达式将在stdout中输出有效的行。

答案 2 :(得分:0)

这个应该符合您的需求:

^.*PCL\s*(?:[6-9]|\d{2,})$

Regular expression visualization

Debuggex

的可视化

答案 3 :(得分:0)

这对我很有用。根据您描述匹配的方式

,也可以逻辑读取

/[^PCL]+PCL\s?*[6-9]\d*/