当人们在我的网站上发布一些文字时,他们有时会插入一长串的连字符,星号或者这样的句号
*********************************************************************
不幸的是,这会破坏某些结果页面上的布局,这对我来说毫无意义。
我应该如何处理?也许一个正则表达式会将相同字符的X重复次数减少到只有5.如果是这样,那么如何......
Regex regex = new Regex("[\\*\\._-]{5,}");
string goodstring = regex.Replace(badstring, "-----");
但如果用户认为编写aaaaaaaaaaaaaaaaaaaaaaaaaa很有趣,那么我的正则表达式就会失败。
问题是。你怎么认为我应该处理这个问题,如果你认为我应该用正则表达式处理它,那么我如何编写一个正则表达式来删除任何字符的不必要的重复(而不仅仅是* .- _像我自己的正则表达式) ?
答案 0 :(得分:6)
回答你的正则表达式问题:
如何编写一个可以删除任何字符的不必要重复的正则表达式
您可以使用反向引用来检测多次输入的相同字符,例如:
Regex regex = new Regex(@"(.)\1{4,}");
然而,问题的主要观点似乎是:
遗憾的是,这会破坏某些结果页面上的布局,这对我来说毫无意义。我该怎么办呢?
您应该使用样式表来指定当文本不适合其容器时应该发生的情况。例如,您可以使用overflow property将内容设置为隐藏或滚动溢出,而不是具有默认行为,即溢出内容可以与页面上的其他元素重叠。
答案 1 :(得分:2)
如何处理这一点有点取决于你/你的客户...我们只能建议但不回答这个...我会(如果你检查注射)只是打印用户想要的东西,但切断/打破它所以它不能破坏你的布局 - 如果你过滤掉一个角色的倍数(有人放在那里销毁你的布局)他/她会简单地继续写下“ababababababababa”下次和你重新开始