Python -使用REGEX匹配变量的精确字符串

bkkx9g8r  于 2023-05-23  发布在  Python
关注(0)|答案(1)|浏览(150)

我有一个关于我的剧本的问题:
我想在处理之前检查变量的形式,这可能只使用3种符号:
1.'Module'(仅限字符串)
1.'example::module::submodule'(可发生1至X次)
1.字符串不能包含以下字符:'/*?"<>|”
我现在写了这个REGEX命令,想知道这是否是最佳的,或者有更好的解决方案:

if( re.match( '(^[\/\*?"<>|])|(\w+::\w+)|([A-Za-z]+$)' , Module ) ) : 
    print( f"[ MSG ] Processing Module '{Module}' ..." )
else :
    print( f"[ ERROR ] The Specified Module '{Module}' Is Not Allowed !"

输出:

'Test Environment' -> OK
'Test Environment::Test::New' -> OK 
'Test Environment:Test::New' -> Not Allowed
'Test Environment' - Not Allowed

测试是成功的,但我不确定。
提前感谢NumeroUnoDE

guykilcj

guykilcj1#

我会把你的正则表达式表达为:

^\w+(?:(?: |::)\w+)*$

说明:

  • ^从字符串开始
  • \w+匹配一个单词
  • (?:
  • (?: |::)匹配空间或::一次
  • \w+后跟一个单词
  • )*零次或多次
  • $字符串结尾

Demo

相关问题