我需要创建一个正则表达式来检测与 Java和Php 下面的格式匹配的字符串:
的 [@用户名:4]
'username'可以任何文字,'4'可以任何整数。我尝试自己创建一个,但我是正则表达世界的新手并且无法这样做。这是我得到的最远:
([[] + [@] + [A-ZA-Z0-9])\ W +
任何帮助都会很棒。谢谢!
答案 0 :(得分:2)
用户名是否会有:在里面?如果不使用以下
\[@([^:]+):(\d+)\]
https://regex101.com/r/7iqrPm/1
如果用户名永远不会有括号,请使用以下内容:
\[@([^:\]]+)(?::(\w+))?\]
它还使:整数部分可选
答案 1 :(得分:1)
\[@\w+\:\d+\]
\w
表示所有字词都可以是用户名,它支持a-z,A-Z,0-9 and _
\d
表示所有数字,0-9
答案 2 :(得分:0)
快速执行此操作的方法是使用此正则表达式:
\[@\w+:\d+\]
Test Here
你做了什么,但有一个缺点。它不会考虑用户名或整数的长度。
我不知道你的情况是否重要,但我个人更喜欢这个正则表达式:
\[@\w{1,25}:\d{1,5}\]
Test Here
这与上面的完全相同,但不允许无限长的用户名或数字,并设置两者的界限。
特别地,\w{1,25}
意味着它将匹配任何单词字符(a-zA-Z0-9_)1到25次(包括1和25)。因此,最长的用户名长度为25个字符,最短的用户名长度为1个字符。这些值可以调整。
同样,它限制1到5个字符之间的整数长度,因此任何超过5位或小于1的整数都是无效的:\d{1,5}
同样,可以调整这些值。