正则表达式:一种特殊情况不匹配[重复]
Posted
技术标签:
【中文标题】正则表达式:一种特殊情况不匹配[重复]【英文标题】:Regex: one particular case is not matched [duplicate] 【发布时间】:2018-03-18 01:41:10 【问题描述】:我正在尝试从动态 html 代码中清除短代码。
到目前为止,这是 ruby 正则表达式:/(?:\[\/?)[^\/\]]+\/?\]/
它适用于所有像这样关闭的代码:
[vc_column]...[/vc_column]
但不是:
[vc_video link='https://vimeo.com/abc' align='center']
# In this case there is no [/vc_video]
这是 rubular 的固定链接:http://rubular.com/r/5et0W0Q73A 与 vc_video
内部不匹配。
有什么想法吗?谢谢。
【问题讨论】:
提示:您的视频短代码不匹配不因为没有结束[/vc_video]
,而是因为网址中的斜线。
提示:regex101.com 比 rubular.com 好得多:)
@SergioTulentsev 谢谢,但是如何解决这个问题才能正常工作?
"如何解决这个问题" - 修改您的正则表达式,使其允许在标签内的任何位置使用斜杠。也许这会破坏其他一些用例。 ¯\_(ツ)_/¯ 我建议对此进行广泛的单元测试,以便您可以在引入回归时立即检测到。
你的问题一点都不清楚。你的输入是什么,你想要的输出是什么?正则表达式只是一个对象。除非您通过某种方法使用它,否则它不会做任何事情。
【参考方案1】:
解决方案是这个正则表达式:
\[(.*?)\]
【讨论】:
以上是关于正则表达式:一种特殊情况不匹配[重复]的主要内容,如果未能解决你的问题,请参考以下文章