POSIX-ERE:匹配单词,但不在方括号

时间:2018-04-09 11:51:26

标签: regex posix-ere

我正在尝试匹配“组织”这个词的出现,但是当它出现在方括号之间时却没有:

示例字符串:

  

组织“[组织名称]”必须至少包含一个   每个组织的用户。   [组织]的ID [id]必须仅包含数字

我尝试使用:

(?:^|\s)(organization)(?!])

但我正在使用的应用程序支持的唯一风格是POSIX Extended Regex。

2 个答案:

答案 0 :(得分:0)

  

出现“组织”一词,但在方括号之间出现

最短的方式是(?!<\[)(organization)(?!=\])

  

我正在使用的应用程序支持的唯一风格是POSIX Extended Regex。

由于您无法使用负面外观:([^[]|^)(organization)([^]]|$)

无法匹配[organizationorganization];如果在缺少open或close括号时希望它成功,则必须明确添加这些情况:

([^[]|^)(organization)([^]]|$)|\[(organization)([^]]|$)|([^[]|^)(organization)\]

答案 1 :(得分:0)

是的,你是对的,括号中的出现不应该匹配

谢谢你的帮助! 我终于使用了这个变种:

([^\[]|^)(organization)([^\]]|$)

我不得不逃离[范围