在开头或结尾匹配带有特殊字符的单词

时间:2016-02-23 23:10:58

标签: javascript regex

这是一个反复出现的话题,但我找不到一个好的解决方案。我需要用javascript中的正则表达式来匹配我的页面内容,而那些绝对必须是单词,而不是单词的一部分。然而,其中一些以这一集中的一封信开头或结尾:[zżźćńółęąśŻŹĆĄŚĘŁÓŃA]。

在最后或开头,词边界显然不适用于这些。用它们的unicode对应物替换它们似乎也不起作用。

现在我正在使用黑客:我将数字从1到9分配给列表中的小写字母,我正在检查单词中的任何字母是否与字符字典中的任何键匹配。如果是这样,它会被一个数字取代,然后我在我需要匹配的内容中以相同的方式替换它。

它有点工作,但它是一个半度量,这意味着正则表达式不再区分大小写,我真的很想拥有。

当然必须有一个干净的解决方案?

在评论中提出编辑......

/\bbudyń\b/g

budyńbudyń asda

匹配粗体,应与第一个单词匹配,并使另一个单词完好无损。

/\bósemka\b/g

ósemkaasdaósemka

同样。

1 个答案:

答案 0 :(得分:0)

试试这个:

/(?:\s|^)(ósemka)(?=\s|$)/g

上面的假设该单词后面只跟一个空格字符(或字符串的结尾)。但是如果还有其他字符可能跟在句号,问号等单词之后,那么这应该有效。

/(?:\s|^)(ósemka)(?=[\s\.\?!;]|$)/g