首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查字符串是否仅包含正则表达式中的字符。

检查字符串是否仅包含正则表达式中的字符。
EN

Stack Overflow用户
提问于 2016-12-18 08:08:53
回答 4查看 9.9K关注 0票数 2

尝试创建一个函数,该函数具有一个给定的正则表达式,该表达式包含所有合法字符,如果字符串仅包含,则将检查字符串是否包含这些字符。

例如

代码语言:javascript
运行
复制
import re
legal_characters = r'[\*\-]' # Matches asterisc and dash characters

def is_legal(test_string):
    if re.match(legal_characters, test_string):
        print("Legal")
    else:
        print("Not legal")

is_legal("***---123")  # should print "Not legal"
is_legal("AbC123")     # should print "Not legal"
is_legal("*-*-*")      # should print "Legal"

产出:

代码语言:javascript
运行
复制
Not legal
Not legal
Not legal

我真的不明白为什么。谁能解释一下吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-18 08:18:53

这将复制您想要的内容:^匹配字符串$的开头和结尾。中间有重复的+字符\w = [A-Za-z0-9_]

代码语言:javascript
运行
复制
legal_characters = '^\w+$'

更新

在修改你的问题后,这是我的建议:

^与字符串$的开头与结束匹配。在中间有重复的+元素[*-]

代码语言:javascript
运行
复制
legal_characters = '^[*-]+$'

没有必要用\来转义\

正如Maroun Maroun指出的,在match扫描字符串的开头时,可以省略^

代码语言:javascript
运行
复制
legal_characters = '[*-]+$'
票数 2
EN

Stack Overflow用户

发布于 2016-12-18 08:18:23

试试这个:

代码语言:javascript
运行
复制
import re
legal_characters = r'\w+$' # Matches Unicode word characters
r = re.compile(legal_characters)

def is_legal(test_string):
    if re.match(r, test_string):
        print("Legal")
    else:
        print("Not legal")

is_legal("aaaAA$")  # should print "Not legal"
is_legal("AAAA***") # should print "Not legal"
is_legal("AAABBB")  # should print "Legal"

在python 2.7.12上测试。

票数 2
EN

Stack Overflow用户

发布于 2016-12-18 08:28:26

您不需要使用re。尝试:

代码语言:javascript
运行
复制
legal_characters = '*-'

def is_legal(test_string):
    for s in test_string:
        if s not in legal_characters:
            print("Not legal")
            return
    print("Legal")

产出如下:

代码语言:javascript
运行
复制
>>> is_legal("***---123")
Not legal
>>> is_legal("AbC123") 
Not legal
>>> is_legal("*-*-*")
Legal
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41206546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档