如何检查以 $ 符号开头并且可以有字母和正数的字符串

How to check string start with $ symbol and can have alphabet and positive digit

我正在尝试检查字符串:

  1. 必须从$符号开始
  2. 后跟 $ 符号它可以有字母和数字(无符号)。
  3. 不允许使用特殊字符和 space(开头的 $ 符号除外)

is_match = re.search("^$[a-zA-Z0-9]", word)

我面临的问题

它在我的字符串中接受特殊字符和 space。

将您的正则表达式修改为:

^$[a-zA-Z0-9]+$
  1. ^ 声明行首的位置
  2. $匹配开头的字符$
  3. [a-zA-Z0-9]+ 匹配这些字符一次或多次
  4. $ 声明行尾的位置

解释:

  1. 您基本上是在搜索以 "$abc123456789" 所以你的字符串如何结束并不重要。我 刚刚将 $ 添加到你的正则表达式中,它断言了位置 行尾
  2. 确保整个字符串只包含字母 和数字,仅此而已。

来源(run):

    regex = r"^$[a-zA-Z0-9]+$"
    test_str = ("$abc123     ")
    is_match = re.search(regex, test_str)
    if(is_match):
        print("Yes")
    else:
        print("No")

Demo

常规字符串中的反斜杠在正则表达式引擎看到它们之前由 Python 处理。通常在正则表达式周围使用原始字符串(或将所有反斜杠加倍)。

此外,您的正则表达式只是检查美元符号后是否(至少)有一个字母数字字符。如果要检查整个字符串,则需要创建一个检查整个字符串的正则表达式。

is_match = re.search(r"^$[a-zA-Z0-9]+$", word)

is_match = re.search("^\$[a-zA-Z0-9]+$", word)