0

到目前为止,我已经把这个放在一起:

\b\S*[^\w\s^'^&]\S*\b

我试图捕捉被审查的整个单词:IE d*mnor d_mnbut don't want &or 't 's 'reto match 并且还需要使其1.23不匹配这样的数字。

我的目标是抓住那些试图通过使用符号代替字母来插入脏话的人。因此,除了撇号之类的东西外,任何带有符号的单词都应该被捕获。符号是一种格式化的&东西,每个字母最多可以有一个。所以'并且&可以使用。带小数的数字应该可以使用,因为它们不是脏话。应该抓住诸如s**td_mn或之类的东西。d.mn

我需要关于数字部分的帮助。

我试过^\d.\d了,not digit dot digit但这对我不起作用。

4

2 回答 2

0

这是我的暂定答案:

\b[a-zA-Z]*(?:[^\w\s^'&]|_)+[a-zA-Z]+\b

使用[a-zA-Z]而不是\S不再包括数字。

编辑:现在要求单词以字母结尾。我也做了它,所以它会匹配重复的特殊字符,比如在a$$hole.

于 2013-01-22T20:15:00.247 回答
0

如何使用这个:

\b\p{L}*[\p{S}\p{P}]((\p{L}[\p{P}\p{S}])|([\p{P}\p{S}]\p{L})|(\p{L}))+\b
  • \p{L}是任何(unicode)字母
  • \p{S}是任何符号
  • \p{P}是任何标点符号

模式的第一部分 ( \p{L}*[\p{S}\p{P}]) 确保单词必须包含至少一个符号或标点符号。模式的其余部分((\p{L}[\p{P}\p{S}])|([\p{P}\p{S}]\p{L})|(\p{L}))+指定事情如何重复。字母后跟标点符号/符号、标点符号/符号后跟字母或仅字母的序列是可以接受的。

要在 Java 代码中使用此模式,请确保首先将所有反斜杠字符替换为双反斜杠。

于 2013-01-22T22:31:31.120 回答