我正在尝试检查哪个字符串:
- 必须从$符号开始
- 后面跟着$符号,它可以有字母和数字(没有符号(
- 不允许使用特殊字符和空格(开头的$符号除外(
is_match = re.search("^$[a-zA-Z0-9]", word)
我面临的问题
它接受我字符串中的特殊字符和空格。
将正则表达式修改为:
^$[a-zA-Z0-9]+$
^
在一行的开头断言位置$
与开头的字符$
匹配[a-zA-Z0-9]+
匹配这些字符一次或多次$
断言行末尾的位置
解释:
- 您基本上是在搜索以
"$abc123456789"
,所以你的字符串如何结束并不重要。我刚刚在正则表达式的末尾添加了$
,该正则表达式在一行的末尾 - 它确保整个字符串仅由字母组成和数字什么都没有
来源(运行(:
regex = r"^$[a-zA-Z0-9]+$"
test_str = ("$abc123 ")
is_match = re.search(regex, test_str)
if(is_match):
print("Yes")
else:
print("No")
演示
正则字符串中的Backsplash在正则表达式引擎看到它们之前由Python处理。通常在正则表达式周围使用一个原始字符串(或将所有反斜杠加倍(。
此外,正则表达式只需检查美元符号后是否(至少(有一个字母数字字符。如果你想检查整个字符串,你需要创建一个检查整个字符串的正则表达式。
is_match = re.search(r"^$[a-zA-Z0-9]+$", word)
或
is_match = re.search("^\$[a-zA-Z0-9]+$", word)