仅限一个字符的正则表达式

时间:2013-04-10 14:08:28

标签: regex

我需要一个正则表达式,其中包含一个字母字符。

例如,它应匹配:

  • 8*x=16
  • x+2=2
  • u329398239823
  • 43044343k43304403

......但不是:

  • xsfdjfefljefe
  • 44434f9434343 f
  • 98(***(*)))(*)(0((-900-87
  • 32233232

2 个答案:

答案 0 :(得分:12)

/^[^a-z]*([a-z])[^a-z]*$/i

i用于不区分大小写的匹配。

^$个锚点强制正则表达式匹配整个字符串。

( )抓住这封信。

答案 1 :(得分:2)

尝试:

/^[^a-z]*([a-z]{1})[^a-z]*$/gim

表示字符串开始(^),然后是任何非字母字符0次或更多次([^a-z]*),然后只有一个字母字符被捕获为第一个匹配(([a-z]{1}),它将是可以替换为$1),然后再次为零或多个非alpha字符,然后是字符串的结尾($)。

在行动here中查看。