python中正则表达式的开头和结尾符号

python中正则表达式的开头和结尾符号,python,regex,Python,Regex,”[A-Za-z0-9-775;]*” '^[A-Za-z0-9-\]*$” 我想检查一个字符串是否只包含上面表达式中的符号,只是想确保字符串中没有像%&/()这样的奇怪符号 我想知道这两个正则表达式之间是否有任何区别?开始和结束符号重要吗?它会以某种方式影响结果吗?Python正则表达式锚定在字符串的开头(与许多其他语言一样):因此开头的^符号没有任何区别。但是,$符号在很大程度上构成了一个符号:如果不包含它,则只需匹配字符串的开头,结尾可以包含任何内容,包括要排除的字符。只需尝试重新匹配([

”[A-Za-z0-9-775;]*”

<代码>'^[A-Za-z0-9-\]*$”

我想检查一个字符串是否只包含上面表达式中的符号,只是想确保字符串中没有像
%&/()
这样的奇怪符号


我想知道这两个正则表达式之间是否有任何区别?开始和结束符号重要吗?它会以某种方式影响结果吗?

Python正则表达式锚定在字符串的开头(与许多其他语言一样):因此开头的
^
符号没有任何区别。但是,
$
符号在很大程度上构成了一个符号:如果不包含它,则只需匹配字符串的开头,结尾可以包含任何内容,包括要排除的字符。只需尝试重新匹配([a-z0-9],“abcdef/%&”)


除此之外,您可能希望使用一个正则表达式,它可以简单地排除您正在测试的字符,这是非常安全的(因此
[^#%&/()]
——或者您可能需要做一些事情来转义括号;不记得它目前是如何工作的).Python正则表达式锚定在字符串的开头(与许多其他语言一样):因此开头的
^
符号没有任何区别。但是,
$
符号在很大程度上构成了一个符号:如果不包含它,则只需匹配字符串的开头,结尾可以包含任何内容,包括要排除的字符。只需尝试重新匹配([a-z0-9],“abcdef/%&”)


除此之外,您可能希望使用一个正则表达式,它可以简单地排除您正在测试的字符,这是非常安全的(因此
[^#%&/()]
——或者您可能需要做一些事情来转义括号;不记得它目前是如何工作的)。

是的,它会。正则表达式可以匹配其输入中的任何位置<代码>#将在您的第一个正则表达式中匹配。

是的。正则表达式可以匹配其输入中的任何位置
#
将在第一个正则表达式中匹配。

开头和结尾符号匹配字符串的开头和结尾

第一个将匹配任何包含类[A-Za-z0-9-_]的零个或多个实例的字符串(基本上是任何字符串…)


第二个将匹配空字符串,但不匹配包含[A-Za-z0-9-307;]中未定义的字符的字符串。

开头和结尾符号匹配字符串的开头和结尾

第一个将匹配任何包含类[A-Za-z0-9-_]的零个或多个实例的字符串(基本上是任何字符串…)


第二个将匹配一个空字符串,但不是一个包含[A-Za-z0-9-!]

中未定义的字符的字符串。Python提供了两种匹配方法,
match
search
-确保使用正确的方法,因为搜索未锚定。Python提供了两种匹配方法,
匹配
搜索
-确保使用正确的一个,因为搜索未定位。当位于[]s内时,最好将“-”字符(用于匹配字符“-”)放在[]的末尾,如[A-Za-z0-9_-]。否则,在看到表单实际上是“0到9,-,and”之前,可能会将表单误读为“9到下划线”。有时,人们也会将“A-C-”更改为“ABC-”,而忘记了更改第一个字符会影响第二个字符的解释方式。当位于[]s内部时,最好将“-”字符(用于匹配字符“-”)放在[]的末尾,如[A-Za-z0-9 \-]。否则,在看到表单实际上是“0到9,-,and”之前,可能会将表单误读为“9到下划线”。有时,人们也会把“A-C-”改成“ABC-”,忘记了改变第一个会影响第二个的解释。