【发布时间】:2009-02-13 18:07:02
【问题描述】:
我需要编写一个小的正则表达式,当它与任何其他特殊字符一起出现时,它应该匹配文字字符 * 的出现。例如,我需要捕获所有这些事件 !* )* (* ** *.* 。对此的例外是*= 和=*,我想允许。我尝试将正则表达式编写为
\W&&[^=]\*|\*\W&&[^=]
但这似乎不起作用。有什么建议么?非常感谢您的帮助。
【问题讨论】:
标签: regex
我需要编写一个小的正则表达式,当它与任何其他特殊字符一起出现时,它应该匹配文字字符 * 的出现。例如,我需要捕获所有这些事件 !* )* (* ** *.* 。对此的例外是*= 和=*,我想允许。我尝试将正则表达式编写为
\W&&[^=]\*|\*\W&&[^=]
但这似乎不起作用。有什么建议么?非常感谢您的帮助。
【问题讨论】:
标签: regex
(\*[^\w=]|[^\w=]\*)
匹配星号后接任何非单词字符(等号除外),或匹配非单词字符后接星号/
【讨论】:
那个匹配你所有的坏样本:
(\!\*|\)\*|\(\*|\*\*|\*\.\*)
如果你想要超过这 4 种情况,最好描述一下,允许什么和禁止什么。
【讨论】:
试试这个
([^(\W\*)*(\*\W)*]|=\*|\*=)
【讨论】:
我认为您正在寻找带有lookbehind and lookahead assertions 的正则表达式。比如:
(?!=[\=\s])\*(?![\=\s])
【讨论】:
(?<!,而不是(?!=。