我有以下可能的文本字符串:
[pbrc:tl:ad,xch]
[pbrc:tl:xch,ad,xyy]
[pbrc:tl:xch, xx, ad]
我需要确保“pbrc:tl:”和“ad”(在冒号之后,某处但在“]”之前搜索。所有上述示例都应该返回true。我目前正在使用以下正则表达式失败了。
\[pbrc:tl:[^]]*ad*\]
我希望对我的正则表达式进行修正。
提前谢谢。
修改
这些需要返回false:
[pbrc:st:ad]
[pbrc:tl:abc]
我将检查所提供的解决方案是否属实。首先,我不相信。
答案 0 :(得分:4)
您的ad*
匹配a
和零个或多个d
符号。您需要在最终]
之前允许]
以外的任意数量的字符,因此,将*
替换为[^]]*
:
\[pbrc:tl:[^]]*ad[^]]*]
^^^^^
请参阅regex demo
模式详情:
\[
- 文字[
pbrc:tl:
- 文字pbrc:tl:
[^]]*
- 除]
以外的零个或多个字符(在某些正则表达式中,内的]
必须转义,例如在JavaScript或ICU中)ad
- 文字ad
[^]]*
- 除]
]
-a literal ]
(可以转义,在大多数语言中,在字符类之外不需要转义)。答案 1 :(得分:0)
你错过了广告
\[pbrc:tl:[^]]*ad[^]]*\]