假设我有一个字符串 s。我想使用正则表达式编写一个函数,如果 s 具有以下特征,该函数返回 True。
- 忽略前导空格。
- 在第 1 步之后,s 可以以下任何 a-z、A-Z 或 _ 开头
- 在第一个字符 s 之后可以有 0 个或多个以下 a-z、A-Z、0-9 和/或 _
- 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))
