Regex 仅用于一个字符的正则表达式

Regex 仅用于一个字符的正则表达式,regex,Regex,我需要一个正则表达式来表示只包含一个字母字符的字符串 例如,它应该匹配: 8*x=16 x+2=2 u329398239823 43044343k43304403 ……但不是: xsfdjfefljefe 44434f9434343 f 98(****)(*)(*)(0)(-900-87 32233232 i用于不区分大小写的匹配 ^和$锚定以强制正则表达式匹配整个字符串 ()捕获字母。尝试以下方法: /^[^a-z]*([a-z]{1})[^a-z]*$/gim 表示字符串的开头(^

我需要一个正则表达式来表示只包含一个字母字符的字符串

例如,它应该匹配:

  • 8*x=16
  • x+2=2
  • u329398239823
  • 43044343k43304403
……但不是:

  • xsfdjfefljefe
  • 44434f9434343 f
  • 98(****)(*)(*)(0)(-900-87
  • <代码>32233232
i
用于不区分大小写的匹配

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

()
捕获字母。

尝试以下方法:

/^[^a-z]*([a-z]{1})[^a-z]*$/gim
表示字符串的开头(
^
),然后是任何非字母字符0次或多次(
[^a-z]*
),然后正好捕获一个字母字符作为第一个匹配(
([a-z]{1})
,可以替换为
$1
),然后是零个或多个非字母字符,然后是字符串的结尾(
$


看看它的作用。

问题不清楚,你想要什么样的表达方式???[a-zA-Z]与“8*x=16”不匹配@simpleBob他想要的表达方式似乎只有一个字母。现在我明白了,整个表达中应该只有一个字母string@simpleBob您确定[a-zA-Z]与“8*x=16”(在x上)不匹配吗?@Ryan它与
=
*
或数字不匹配。它与x匹配。那么,您测试它的字符串是什么?它与“44434F94343 f”匹配如果你想要它,只需要使用一个捕获组。编辑。如果只有一个字母和一个正则表达式,你不能只获取字母并检查整个字符串。如果你只想要字母,你可以通过捕获组获得它。我无法理解你想做什么。
/^[^a-z]*([a-z]{1})[^a-z]*$/gim