8

我需要一个字符串的正则表达式,其中只有一个字母字符。

例如,它应该匹配:

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

...但不是:

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

2 回答 2

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

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

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

( )捕捉这封信。

于 2013-04-10T14:11:15.770 回答
3

尝试:

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

表示字符串的开头 ( ^),然后是任何非字母字符 0 次或更多次 ( [^a-z]*),然后恰好一个 alpha 字符被捕获为第一个匹配项 ( ([a-z]{1}),它将可用于替换为$1),然后是零个或多个非字母字符,然后结束字符串 ( $)。

在这里查看它的实际应用。

于 2013-04-10T14:20:09.653 回答