python - 使用正则表达式仅匹配特定的特殊字符

标签 python regex

我有下面的代码来接受至少 3 个字符的输入,它应该只包含 [a-zA-Z0-9] ,_,- ,.(点) 但模式不应仅匹配

类似的输入可以是--__abc----____但不能是*...**

我有以下模式,但无法正常工作。 有人可以帮我吗

     n = input()
     pattern = "^[A-Za-z0-9_-]+[.]*$"
     if match:
         print('input accepted') # exp : ----,____,aaa,000, __ahs-- 
                                    -,_.as
     else:
         print('input not accepted') # exp : .... (not accepted as  
                                       contains only dot(.) 

最佳答案

您可以通过将上述代码中的第二行和第三行替换为以下内容来修复当前的方法:

if re.search(r'^(?!\.+$)[A-Za-z0-9._-]{2,}$', n.strip()):

n.strip() 将从输入中去除所有多余的空格,并且模式将匹配

  • ^ - 字符串开头
  • (?!\.+$) - 不允许仅使用点字符串
  • [A-Za-z0-9._-]{2,} - 两个或多个字母、数字、._-
  • $ - 字符串结尾。

请参阅regex demo .

关于python - 使用正则表达式仅匹配特定的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297495/

相关文章:

python - Pygame/Python。左边似乎比右边移动得更快。为什么?

python - 为什么 urllib 不适用于本地网站?

javascript - 正则表达式如果匹配则消耗一个字符,否则不消耗

javascript - 如何创建正则表达式以在较大的字符串中查找子字符串?

.net - 将正则表达式与一个单词的可变长度后视和另一个单词的可变长度负后视相匹配?

Python Pandas 从 Groupby 中选择组的随机样本

Python 2 --> 3 : object of type 'zip' has no len()

python - 终止无限循环

javascript - 为什么这个 javascript 字符串匹配调用只返回一个结果?

Python正则表达式获取特定字符串后的第一个元素