我已经尝试过再次尝试为此模式找到一个正则表达式。 我从HTML源代码中选择了一个这样的字符串。
<!-- TAG=Something / Something else -->
有时它只是:
<!-- TAG=Something -->
在这两种情况下,我希望正则表达式只匹配“Something”,即TAG =和可选的/.
之间的所有内容我的第一次尝试是:
TAG=(.*)[/]?(.*) -->
但第一个括号匹配TAG =和 - &gt;之间的所有内容。无论。那么这里的正确方法是什么?
答案 0 :(得分:2)
答案 1 :(得分:2)
<!--.*?=(.*?)(-->|/)
它匹配您需要的一切。
答案 2 :(得分:1)
使用非贪婪修饰符?
:
TAG=(.*?)[/]?.* -->
此外,[/]
的使用似乎不常见 - 您不需要字符类来编写单个字符。这种不寻常语法的最可能解释可能是因为您使用/
作为正则表达式分隔符,这意味着/
被视为特殊字符。在许多(不是全部)正则表达式方言中,可以通过使用不同的分隔符来解决此问题,例如#
。这可以防止您需要转义斜杠。