正则表达式:
start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
我认为这意味着:
问题:
任何人都可以确认这种行为吗?除了“{3,}”的含义之外,我能够通过良好的方式验证所有内容。任何帮助是极大的赞赏!
-tsnm
答案 0 :(得分:10)
一些评论 -
start\_
应为^start\_
。那样你就可以放心了
字符串的开头(而不是中间的)[a-z0-9]{3,}
是任何小写字母数字字符。如果你想要大写,你应该使它[a-zA-Z0-9]
。此外,如果您希望它大于3(并且不等于),请将其设为{4,}
\.txt$
。 如果没有我的建议,这将匹配 -
blahblahlbahstart_abc123_abc123.txtblahblahblah
这不会 -
start_ABC123_ABC123.txt
此外,'_
'不是正则表达式的特殊字符。这意味着它应该不被\
转义。所以你的最终正则表达式应该是 -
^start_[a-zA-Z0-9]{4,}_[a-zA-Z0-9]{4,}\.txt$
答案 1 :(得分:5)
你非常接近。让我们依次采取这种做法:
start\_
匹配任何以“start _”开头的字符串
正确。
[a-z0-9]{3,}
然后包含大于3个字符的字母数字子字符串
关闭。这意味着“具有字母数字子串3个字符或更多”。
\_
然后用下划线
分隔
正确。
[a-z0-9]{3,}
然后包含大于3个字符的字母数字子字符串
再次,关闭。这意味着“具有字母数字子串3个字符或更多”。
\.txt
最后有一个“.txt”扩展名
正确。
答案 2 :(得分:3)
我会说你很亲密,但并不完全正确。
[a-z0-9]{3,}
将匹配 3个或更多小写字母或数字。如果正则表达式在不区分大小写的文本中运行,它也将匹配大写字母。
如上所述,您的正则表达式将匹配包含该模式的任何字符串。如果您希望它匹配整个字符串,您可以使用标记作为字符串的开头和结尾:
^start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt$
此外,您可能不需要转义下划线。
答案 3 :(得分:1)
这是一个非常有用的工具 https://addons.mozilla.org/nl/firefox/addon/rext/
这样你就可以自己测试一下。如果用weblanguages编程,你必须刷新每一个更改,这些更新动态,所以你可以非常快地调整你的正则表达式:)
答案 4 :(得分:-2)
start_然后是3个字母数字字符然后_然后允许3个字母数字字符后跟.txt格式文件名