在开头或结尾使用特殊字符匹配单词

Matching words with special characters at the beginning or end

本文关键字:特殊字符 单词 开头 结尾      更新时间:2023-09-26
这是一个

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

单词边界显然不适用于结尾或开头的这些。用它们的 unicode 对应项替换它们似乎也不起作用。

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

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

肯定必须有一个干净的解决方案吗?

按照评论中的要求进行编辑...

/'bbudyń'b/g

布丁阿斯达

匹配

粗体,应匹配第一个单词,并保持另一个单词不变。

/'bósemka'b/g

Ósemka asdaósemka

同样。

试试这个:

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

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

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