使用 preg_replace 合并重复项,考虑破折号
我有一个 preg_replace 可以查找重复的条目并进行合并。我还需要考虑破折号,但目前还没有。
$id = KRS-KRS-123
preg_replace('/^(\w+)-(?=\1)/', '', $id);
// returns KRS-123
$id = KRS-KRS123
preg_replace('/^(\w+)-(?=\1)/', '', $id)
// returns KRS123
// I need this one to return KRS-KRS123
I have a preg_replace that finds duplicate entries and consolidates. I need to take into consideration the dash as well, but currently it does not.
$id = KRS-KRS-123
preg_replace('/^(\w+)-(?=\1)/', '', $id);
// returns KRS-123
$id = KRS-KRS123
preg_replace('/^(\w+)-(?=\1)/', '', $id)
// returns KRS123
// I need this one to return KRS-KRS123
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在前瞻
(?=\1\b)
内的\1
之后添加字边界\b
:这样,仅当
\1
后跟\W
([^\w]
)或结尾时,lookahead 才会计算为 true细绳。演示
将产生:
Add a word boundary,
\b
, after the\1
inside the look ahead(?=\1\b)
:That way, the lookahead will only evaluate to true if
\1
is followed by a\W
(a[^\w]
) or the end-of-string.Demo
will produce: