【问题标题】:Regex match a string that can contain only characters and numbers正则表达式匹配只能包含字符和数字的字符串
【发布时间】:2018-05-25 09:39:55
【问题描述】:

我正在开发 Spring @RequestMapping

假设我有一个 URI:/test/{param: REGEX}/something, 或者只是 /test/REGEX/something 对于非春天的人。

REGEX 部分是我想要捕获任何只能包含字母和数字的字符串的地方。没有特殊字符,没有空格。 例如:

valid -> test/My1Self123/something
valid -> test/1MySelf123/something
valid -> test/MySe12Lf34/something
invalid -> test/_Mys1Elf/something
invalid -> test/!_ Myself/something

这个表达式看起来如何? 我在 regexr 和 regex101 上尝试了很多组合,但并没有得到我想要的。

【问题讨论】:

  • 你能分享你的尝试吗?
  • 我可能真的想通了。我尝试了 \/(\w+|\d+)\/ 的变体,看起来我的测试不起作用的原因是因为我忘记包含 / 字符:/
  • 大概[A-Za-z0-9]+就够了。

标签: regex spring request-mapping


【解决方案1】:

我认为这样的内容应该只匹配数字和字符:

[0-9a-zA-Z]+

在正则表达式中。

【讨论】:

  • 是的,这也是一种变体解决方案。 :) 谢谢!
【解决方案2】:

抱歉,我想通了。

\/(\w+|\d+)\/

这为我解决了这个问题,因为我忘记在在线正则表达式测试器中包含 \/ \/,并且它匹配了许多我不想要的组。
编辑:最终使用了我上面的答案。

【讨论】:

  • 如果您不想匹配下划线,请不要使用\w。您提出的解决方案与您所说的 test/_Mys1Elf/something 匹配。
  • 哦,是的,过了一会儿我注意到了。我使用了上面的答案。 :)
猜你喜欢
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
  • 2015-02-26
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多