正则表达式:
start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
我认为这意味着什么:
- 匹配以“start_”开头的任何字符串
- 然后具有大于 3 个字符的字母数字子字符串
- 然后用下划线分隔
- 然后具有大于 3 个字符的字母数字子字符串
- 终于有了“.txt”扩展名
问题:
谁能确认这种行为?除了“{3,}”的含义外,我几乎可以通过 good 验证所有内容。任何帮助是极大的赞赏!
-tsnm
正则表达式:
start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
我认为这意味着什么:
问题:
谁能确认这种行为?除了“{3,}”的含义外,我几乎可以通过 good 验证所有内容。任何帮助是极大的赞赏!
-tsnm
几点评论——
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$
你很亲密。让我们轮流看这个,就像你做的那样:
start\_
匹配以“start_”开头的任何字符串
正确的。
[a-z0-9]{3,}
然后具有大于 3 个字符的字母数字子字符串
关。这意味着“具有 3 个或更多字符的字母数字子字符串”。
\_
然后用下划线分隔
正确的。
[a-z0-9]{3,}
然后具有大于 3 个字符的字母数字子字符串
再次,关闭。这意味着“具有 3 个或更多字符的字母数字子字符串”。
\.txt
终于有了“.txt”扩展名
正确的。
我会说你很接近,但并不完全正确。
[a-z0-9]{3,}
将匹配3 个或更多小写字母或数字。如果您的正则表达式以不区分大小写的文本运行,它也将匹配大写字母。
如所写,您的正则表达式将匹配任何包含该模式的字符串。如果您希望它匹配整个字符串,您可以使用标记作为字符串的开头和结尾:
^start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt$
此外,您可能不需要转义下划线。
这是一个非常有用的工具 https://addons.mozilla.org/nl/firefox/addon/rext/
这样你就可以自己测试了。如果用网络语言编程,你必须刷新每一个变化,这个更新是动态的,所以你可以非常快速地调整你的正则表达式:)
start_ 然后是 3 个字母数字字符,然后是 _ 然后允许 3 个字母数字字符后跟 .txt 格式文件名