正则表达式匹配符号并忽略精确字符串

问题描述 投票:0回答:1

目前我有这样的正则表达式:

(?<!&)#(?!8203;)

这将允许为我的案例捕获大多数

'#'

例如,给定输入

he#ll#o
,将有 2 个匹配项。

再次,给定输入

he#ll#o&#8203;
,将有 2 个匹配项。

但是,给定输入

&#&#&#
或只是
#8203;#8203;#8203;
,它将无法找到匹配项。

如果前面的文本可能不是前一个单词或空格的结尾,我该如何修改现有的正则表达式以完全忽略

'&#8203;'

regex regex-lookarounds regex-negation
1个回答
0
投票

您可以将环视调整为

#(?<!&#(?=8203;))

查看正则表达式演示

详情

  • #
    -
    #
    char
  • (?<!&#(?=8203;))
    - 如果 - 紧接在左侧 - 有一个
    &#
    字符序列紧随其后是
    8203;
    字符序列。
© www.soinside.com 2019 - 2024. All rights reserved.