正则表达式在括号前得到正确的词

时间:2012-05-21 02:12:18

标签: php regex

我有各种不同信息的字符串,但它们都有一个共同特征:它们包含请求者的用户名,后面有括号。类似于:"... paul [55] ..."我试图编写一个能够在[dd]之前提取单词的正则表达式

这就是我到目前为止所提供的内容:"/(?P<user>\w+)\s\[\d\d\]/"但这仅在字符串以用户开头时才有效,例如"paul [55] has logged in",但在这种情况下不起作用"user paul [55] has logged off"

我错过了什么?

1 个答案:

答案 0 :(得分:3)

尝试使用positive lookahead assertion

(\w+)(?=\s?\[\d\d\])

此表达式仅匹配一个或多个单词字符,如果后跟可选空格和方括号中的两位十进制数字。