1

我有一个字符串:(prawy p pęknięty p zderzak pęknięcie它是波兰语)

我想全选p(除了单词“pęknięty”和“peknięcie”中的“p”)

我试图做这样的事情:\b(s*ps*)\b,但它不能正常工作。有任何想法吗?

4

2 回答 2

0

您可能会使用负前瞻和字符类:

\bp(?!([eę]knię(?:cie|ty)\b)

在零件

  • \bp前面有一个单词边界
  • (?!如果右边的不是
    • [eę]knię匹配eę后跟knię
    • (?:cie|ty)\b匹配cieorty和一个单词边界
  • )关闭负前瞻

正则表达式演示

使用字符类可能会匹配单词eę单词中的无效变体。

要完全匹配单词,您可以在单词边界之间匹配它们

\bp(?!ęknięty\b|ęknięcie\b)

正则表达式演示

于 2019-10-10T14:26:07.490 回答
0

也许,

\bp(?=[a-z]+|\s|$)

或者

(?!pęknięcie|pęknięty)\bp

可能只是工作正常。

演示 1

演示 2


如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。


正则表达式电路

jex.im可视化正则表达式:

在此处输入图像描述

于 2019-10-10T14:13:48.840 回答