繁体   English   中英

如何为字符串创建正则表达式以匹配[@username:4]?

[英]How do I create regular expression for a string to match [@username:4]?

我需要创建一个正则表达式来检测匹配以下Java和Php格式的字符串:

[@用户名:4]

其中“用户名”可以是任何文本“ 4”可以是任何整数 我曾尝试自己创建一个,但是我对正则表达式领域并不陌生,因此无法做到。 这是我得到的最远的信息:

([[] + [@] + [A-Za-z0-9])\\ w +

任何帮助都会很棒。谢谢!

用户名中是否会包含:? 如果不使用以下

\[@([^:]+):(\d+)\]

https://regex101.com/r/7iqrPm/1

如果用户名永远不会带有方括号,请使用以下命令:

\[@([^:\]]+)(?::(\w+))?\]

它还使:integer部分成为可选

https://regex101.com/r/FmfAze/3

\[@\w+\:\d+\]

\\w表示所有单词都可以是用户名,它支持az,AZ,0-9 and _

\\d表示所有数字, 0-9

一种快速的方法是使用以下正则表达式:

\[@\w+:\d+\]

在这里测试
这可以满足您的要求,但有一个缺点。 它不考虑用户名或整数的长度。

我不知道这对您来说是否重要,但我个人更希望使用此正则表达式:

\[@\w{1,25}:\d{1,5}\]

在这里测试
与上一个完全相同,但不允许无限长的用户名或数字,并设置了两者的界限。 在垂直位置, \\w{1,25}表示它将与1到25次(含)之间的任何单词字符(a-zA-Z0-9_)匹配。 因此,最长的用户名长度为25个字符,最短的用户名长度为1个字符。 这些值可以调整。 同样,它将整数长度限制在1到5个字符之间,因此任何大于5位或小于1的整数都是无效的: \\d{1,5}同样,可以调整值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM