如何检查以 $ 符号开头并且可以有字母和正数的字符串
How to check string start with $ symbol and can have alphabet and positive digit
我正在尝试检查字符串:
- 必须从$符号开始
- 后跟 $ 符号它可以有字母和数字(无符号)。
- 不允许使用特殊字符和 space(开头的 $ 符号除外)
is_match = re.search("^$[a-zA-Z0-9]", word)
我面临的问题
它在我的字符串中接受特殊字符和 space。
将您的正则表达式修改为:
^$[a-zA-Z0-9]+$
^
声明行首的位置
$
匹配开头的字符$
[a-zA-Z0-9]+
匹配这些字符一次或多次
$
声明行尾的位置
解释:
- 您基本上是在搜索以
"$abc123456789"
所以你的字符串如何结束并不重要。我
刚刚将 $
添加到你的正则表达式中,它断言了位置
行尾
- 确保整个字符串只包含字母
和数字,仅此而已。
来源(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")
常规字符串中的反斜杠在正则表达式引擎看到它们之前由 Python 处理。通常在正则表达式周围使用原始字符串(或将所有反斜杠加倍)。
此外,您的正则表达式只是检查美元符号后是否(至少)有一个字母数字字符。如果要检查整个字符串,则需要创建一个检查整个字符串的正则表达式。
is_match = re.search(r"^$[a-zA-Z0-9]+$", word)
或
is_match = re.search("^\$[a-zA-Z0-9]+$", word)
我正在尝试检查字符串:
- 必须从$符号开始
- 后跟 $ 符号它可以有字母和数字(无符号)。
- 不允许使用特殊字符和 space(开头的 $ 符号除外)
is_match = re.search("^$[a-zA-Z0-9]", word)
我面临的问题
它在我的字符串中接受特殊字符和 space。
将您的正则表达式修改为:
^$[a-zA-Z0-9]+$
^
声明行首的位置$
匹配开头的字符$
[a-zA-Z0-9]+
匹配这些字符一次或多次$
声明行尾的位置
解释:
- 您基本上是在搜索以
"$abc123456789"
所以你的字符串如何结束并不重要。我 刚刚将$
添加到你的正则表达式中,它断言了位置 行尾 - 确保整个字符串只包含字母 和数字,仅此而已。
来源(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")
常规字符串中的反斜杠在正则表达式引擎看到它们之前由 Python 处理。通常在正则表达式周围使用原始字符串(或将所有反斜杠加倍)。
此外,您的正则表达式只是检查美元符号后是否(至少)有一个字母数字字符。如果要检查整个字符串,则需要创建一个检查整个字符串的正则表达式。
is_match = re.search(r"^$[a-zA-Z0-9]+$", word)
或
is_match = re.search("^\$[a-zA-Z0-9]+$", word)