【问题标题】:Regex: Match if strings starts with a letter or number and then正则表达式:如果字符串以字母或数字开头,则匹配,然后
【发布时间】:2014-11-29 16:34:52
【问题描述】:

我想匹配一个以字母或数字开头的字符串,然后我想从那里计算字符串(不包括空格),如果超过 5 个字符,则匹配它。

我相信我已经很接近了,我目前的正则表达式是:

\s*(?:\S[\t ]*){5,}

我需要补充的是,确保字符串以字母或数字开头(或者如果它以空格开头,请确保后面的字符是字母或数字。)

http://regex101.com/r/lD7mZ2/1

【问题讨论】:

  • 您能否根据示例数据详细说明您的问题,并根据示例数据提供所需的输出,这对正确答案更有帮助

标签: regex


【解决方案1】:

正则表达式怎么样

  ^\s*[a-zA-Z0-9]\s*(?:\S[\t ]*){4,}

示例:http://regex101.com/r/lD7mZ2/4

所做的更改

  • ^ 将正则表达式锚定在字符串的开头。

  • [a-zA-Z0-9] 匹配字母或数字

  • {4,} 至少量化 4 次。前面的\w 使长度最小为 5

一个更短的版本是

^\s*[a-zA-Z0-9]\s*(?:\S\s*){4,}

【讨论】:

  • 小挑剔:\w也匹配下划线
  • @Bohemian 我错过了。已在答案中更正。
  • 我会用简单的\s替换[\t ]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 2016-11-07
  • 2016-09-01
  • 2017-12-25
  • 2015-05-14
  • 2011-12-10
  • 1970-01-01
相关资源
最近更新 更多