正则表达式保留所有字母表中的所有字母以及数字和下划线(印地文字母问题)

Regex to keep all letters in all alphabets along with digits and underscore (problem on hindi letters)

我找到了一个正则表达式模式来删除所有非字母表字母:\p{L}

因此我做了一个正则表达式来删除所有非字母、非数字和非下划线模式:/[^\p{L}\d_]/gimu

不幸的是,它不适用于像 #फ्रांस 这样的印地语字符,它给出 फरस

自己看这里https://regex101.com/r/dnXDK0/1

请帮助我 :-)

您忘记了变音符号。您需要在否定字符 class:

中添加 \p{M}\p{Mn}
/[^\p{L}\p{M}\d_]/gu

参见regex demo

请注意,此处不需要 im 标志。 m 重新定义锚点行为,但您的正则表达式不包含 ^$i 以不区分大小写的方式匹配大小写字母,但 \p{L} 匹配所有字母,大写和小写。