正则表达式匹配特定格式
我真的很不擅长正则表达式(我真的无法理解我的生活)。我想要一个匹配以# 开头的子字符串的正则表达式(例如#something),但没有被方括号包围(例如[#something])。
到目前为止,我设法组合了一个匹配方括号之间的子字符串的正则表达式,如下所示:
[([^[]]+)]
回答
您可以使用您的模式扩展您的方法并从中省略捕获组。那么这将是您不想匹配的部分。
|向模式添加一个替代项,后跟一个捕获组以匹配您想要的内容。
[[^[]]+]|(#[^s#]+)
[[^[]]+]匹配来自[...]|或者(#[^s#]+)捕获组 1,匹配 # 和 1+ 次除 whitspace 字符或 # 以外的任何字符
正则表达式演示