我需要在文本中找到这样的字符串@ [0000:0000:Username]。
然后我需要提取第一个数字序列(user-id)和用户名。 然后我需要用链接替换它们。
我能够提取第一个数字序列,但用户名是可变的。它可以有多个单词(和空格),但它也可以是单个单词,例如“John”,“John Doe”,“John Doe Junior”。
用户名可以包含字母数字字符,句点,下划线和短划线。
这就是我现在拥有的用户名,最多4个字:
/@\[(\d*):\d*:(\S*|\S*\s*\S*\s*\S*\s*\S*)\]/
这是我想要创建的链接:
<a href="http://www.facebook.com/user-id/" target="_blank">Username</a>
我试着这样:
<a href="http://www.facebook.com/$1/" target="_blank">$2</a>
如果只找到一个匹配项,则可以正常工作。只要有更多的匹配它就会混乱。
非常感谢任何帮助。
答案 0 :(得分:1)
这应该可以解决问题:
/@\[(\d+):\d+:([^\]]+)\]/
[^]]搜索所有不是]的字符,所以基本上都是最终的所有字符
答案 1 :(得分:0)
尝试:
/@\[(\d*):\d*:([\w. \-]*)\]/m
[\w. \-]
匹配字母,数字,下划线,句号,空格和短划线。 *
之后允许任意数量的这些。
答案 2 :(得分:0)
@\[(\d+):\d+:([-\w. ]+)\]