我想从具有unicode(非ASCII)字符的字符串中删除标点符号(通常为非单词字符)。删除/替换非单词字符时处理unicode
例如New $Orléans
到New Orléans
或NewOrléans
(如果空间被删除)
我来交叉使用至今\W
或\w
(见PHP strip punctuation)
我的挑战是保持统一的方法。如果我使用\W
的Î
上Île-de-France
获取删除/替换:
preg_replace('/\W+/', "-", 'Île-de-France')
给-le-de-France
是否可以除去非字字符和处理仍是单词字符非ASCII字符?
谢谢。
使用''/ [^ \ p {M} \ w] +/u''。 –
https://www.regex101.com/r/hV2qA2/1 – splash58
如果您需要使用组合标记,请使用我的建议。否则,你的问题是重复的,因为这里有很多类似的问题关于'\ u'修饰符。 –