我有一个正则表达式模式(\W|_)[^-]
不适合h_e.l_l.o - w_o.r_d
(替换字符串为“”)。
它返回类似这样的内容:
h w
我希望至少能看到这样的事情:
h e l l o - w o r d
如何替换所有非单词字符和_
不包括-
symbol?
要匹配除破折号(或连字符)之外的任何非单词字符,您可以使用
[^\w-]
However,这个正则表达式不匹配_
.
你需要一个否定字符类匹配除字母、数字和连字符之外的任何字符:
/[^-a-zA-Z0-9]+/
或(使用不区分大小写的修饰符):
/[^-a-z0-9]+/i
See demo.
请注意,-
放置在字符类开始处,并且不需要转义。
您可以在末尾添加一个加号,一次性匹配所有不需要的字符,从而将它们一次性删除。
如果您想让您的模式识别 Unicode(也就是说,在某些正则表达式风格中,如果您使用带/不带某些标志的速记字符类,它们也将匹配所有 Unicode 对应项),您可以使用
/[^\w-]|_/
See the 正则表达式演示 (or /(?:[^\w-]|_)+/
抓住这些字符的整个块)。
Here, [^\w-]
匹配任何不是单词字符(字母、数字或下划线)的字符以及第二个替代项_
匹配下划线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)