我在Javascript中有以下正则表达式:
/\w{1,}\s*\w{1,}/
检查字符串是否至少包含两个大于1个字符的单词。
前 -
asd fgh - Valid
a b d dfd - Valid
xscxs - Invalid
我现在有一个新的要求,我试图实施,但无法正确。
新要求:能够拥有与以前相同类型输入的逗号分隔列表。不能以逗号结尾。根据上述规则,每件物品必须有效 如果没有逗号,那么它也是有效的 此外,所有字符都是字母,没有数字/特殊字符
Valid: HOH vfdffd,dsfds dfgd,UIU fgfd
Valid: JOI JOIO
Invalid: QASW fgdfg,
Invalid: sdfds,1234 dfgdfg
Invalid: JKJ,ABCD
答案 0 :(得分:0)
您可以将第一个要求的模式指定为[a-zA-Z]+(?:\s[A-Za-z]+)+
以匹配1个以上的字母字符,然后匹配1个以上的空格+一个或多个字符的序列,然后在另一个组中重复该模式一个逗号:
/^[a-z]+(?:\s[a-z]+)+(?:,[a-z]+(?:\s[a-z]+)+)*$/i
请参阅regex demo(所有\s
替换为演示中的空格,因为输入是一个多行字符串。)
如果允许多个空格,请将\s
替换为\s+
。
<强>详情:
^
- 字符串开头[a-z]+
- 1+ letter (?:\s[a-z]+)+
- 一个或多个序列(即空间是强制性的)
\s
- 一个空格(添加+
以匹配一个或多个发生)[a-z]+
- 1+个字母(?:,[a-z]+(?:\s[a-z]+)+)*
- 零个或多个序列(即逗号是可选的)
,
- 逗号(?:\s[a-z]+)+
- 见上文$
- 字符串结束。答案 1 :(得分:0)
from subprocess import call
path = "..\batch"
call([path+"\test.bat"])