2

正则表达式:

start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt

我认为这意味着什么:

  1. 匹配以“start_”开头的任何字符串
  2. 然后具有大于 3 个字符的字母数字子字符串
  3. 然后用下划线分隔
  4. 然后具有大于 3 个字符的字母数字子字符串
  5. 终于有了“.txt”扩展名

问题:

谁能确认这种行为?除了“{3,}”的含义外,我几乎可以通过 good 验证所有内容。任何帮助是极大的赞赏!

-tsnm

4

5 回答 5

10

几点评论——

  1. start\_应该是^start\_。这样你就可以确保它是字符串的开始(而不是潜在的中间)
  2. [a-z0-9]{3,}是任何小写字母数字字符。如果你也想要大写,你应该做它[a-zA-Z0-9]。此外,如果您希望它大于 3(并且不等于),请使其{4,}
  3. 这很好
  4. 与2相同的问题
  5. 如果你想确保 .txt 在最后,你应该做它\.txt$

没有我的建议,这将匹配 -

blahblahlbahstart_abc123_abc123.txtblahblahblah

而这不会——

start_ABC123_ABC123.txt

此外,' _' 不是正则表达式的特殊字符。这意味着它应该被\. 所以你的最终正则表达式应该是 -

^start_[a-zA-Z0-9]{4,}_[a-zA-Z0-9]{4,}\.txt$

于 2013-06-25T16:34:43.067 回答
5

你很亲密。让我们轮流看这个,就像你做的那样:

start\_

匹配以“start_”开头的任何字符串

正确的。

[a-z0-9]{3,}

然后具有大于 3 个字符的字母数字子字符串

关。这意味着“具有 3 个或更多字符的字母数字子字符串”。

\_

然后用下划线分隔

正确的。

[a-z0-9]{3,}

然后具有大于 3 个字符的字母数字子字符串

再次,关闭。这意味着“具有 3 个或更多字符的字母数字子字符串”。

\.txt

终于有了“.txt”扩展名

正确的。

于 2013-06-25T16:30:59.457 回答
3

我会说你很接近,但并不完全正确。

[a-z0-9]{3,}

将匹配3 个或更多小写字母或数字。如果您的正则表达式以不区分大小写的文本运行,它也将匹配大写字母。

如所写,您的正则表达式将匹配任何包含该模式的字符串。如果您希望它匹配整个字符串,您可以使用标记作为字符串的开头和结尾:

^start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt$

此外,您可能不需要转义下划线。

于 2013-06-25T16:34:22.907 回答
1

这是一个非常有用的工具 https://addons.mozilla.org/nl/firefox/addon/rext/

这样你就可以自己测试了。如果用网络语言编程,你必须刷新每一个变化,这个更新是动态的,所以你可以非常快速地调整你的正则表达式:)

于 2013-06-25T16:33:52.473 回答
-2

start_ 然后是 3 个字母数字字符,然后是 _ 然后允许 3 个字母数字字符后跟 .txt 格式文件名

于 2013-06-25T16:36:02.653 回答