Skip to main content
 首页 » 编程设计

python之匹配有效变量模式的正则表达式

2024年10月01日28zlslch

假设我有一个字符串 s。我想使用正则表达式编写一个函数,如果 s 具有以下特征,该函数返回 True。

  1. 忽略前导空格。
  2. 在第 1 步之后,s 可以以下任何 a-z、A-Z 或 _ 开头
  3. 在第一个字符 s 之后可以有 0 个或多个以下 a-z、A-Z、0-9 和/或 _
  4. s 可以有 1 个或多个尾随空白字符。

我已经尝试了下面建议的解决方案,哪里出错了?

import re 
def test_s(s): 
     return bool(re.search("[A-Za-z_\s]{1}[A-Za-z0-9_]*[\s]*$",s)) 

更新: 我尝试了下面的解决方案(它未能捕获我最后的 2 个测试用例):

CASE: return bool(re.search(r'\s*[A-Za-z_]\w*\s*', s))

TESTLIST = ['__This_Is_a_StringThatShouldWork' , '     SoIsThis1    ' , '4getaboutThis1', '7his_ShouldReturnFalse']] 
for s in TESTLIST: 
    print(is_var(s)) 

[出]

True 
True 
True (Should be False) 
True (Should be False) 

请您参考如下方法:

试试这个:

import re 
def test_s(s): 
    return bool(re.search(r'\s*[A-Za-z_]\w*\s*', s))