gpt4 book ai didi

正则表达式替换非单词除破折号

转载 作者:行者123 更新时间:2023-12-04 17:34:12 25 4
gpt4 key购买 nike

我有一个正则表达式模式(\W|_)[^-]不适用于h_e.l_l.o - w_o.r_d(替换字符串为“”)。

它返回如下内容:

h      w   

我希望至少看到这样的事情:
h e l l o - w o r d

如何替换除 _符号以外的所有非单词字符和 -

最佳答案

要匹配除破折号(或连字符)以外的任何非单词字符,您可以使用

[^\w-]

但是,此正则表达式与 _不匹配。

您需要一个否定的字符类,该字符类必须与除字母,数字和连字符以外的任何字符相匹配:
/[^-a-zA-Z0-9]+/

或(不区分大小写的修饰符):
/[^-a-z0-9]+/i

参见 demo

注意 -放在字符类的开始处,不需要转义。

您可以在末尾添加一个加号以匹配所有不需要的字符,以一次性删除它们。

如果您想让模式知道Unicode(也就是说,在某些正则表达式中,如果您使用带有/不带有某些标志的速记字符类,它们也将与所有Unicode对应项匹配),则可以使用
/[^\w-]|_/

请参阅 regex demo(或 /(?:[^\w-]|_)+/来获取这些字符的整个块)。

在这里, [^\w-]匹配任何非单词char的字符(字母,数字或下划线),第二个替代 _匹配下划线。

关于正则表达式替换非单词除破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com