这个正则表达式意味着我认为它意味着什么?

too*_*are 2 regex

正则表达式:

start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
Run Code Online (Sandbox Code Playgroud)

我认为这意味着什么:

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

题:

谁能证实这种行为?除了"{3,}"的意思之外,我能够通过良好的方式验证所有内容.任何帮助是极大的赞赏!

-tsnm

Dav*_*ica 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

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

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


lon*_*day 5

你很近.让我们依次对待,就像你做的那样:

start\_

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

正确.

[a-z0-9]{3,}

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

关.这意味着"具有字母数字子串3个字符或更多".

\_

然后用下划线分开

正确.

[a-z0-9]{3,}

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

再次,关闭.这意味着"具有字母数字子串3个字符或更多".

\.txt

最后有一个".txt"扩展名

正确.