繁体   English   中英

删除除连字符以外的所有特殊字符

[英]Remove every special character except hyphen

我有两个字符串,例如“Stack Overflow”和“Stack-Overflow”。 现在我正在研究一个String匹配方法,我需要格式化一些字符串。

除连字符外,每个特殊字符都应该是String的结尾。 因此“Stack Overflow”将成为“Stack”,“Stack-Overflow”将保持不变。

我已经使用过str.split(" ", 1)[0]; str.replaceAll("\\\\s", "")str.replaceAll("[^a-zA-Z0-9]", ""); 但它不与连字符配合。

我应该使用什么替代方法?

使用[^\\\\w-]+正则表达式

    String str = "Stack-Overflow";
    String str2 = str.split("[^\\w-]+")[0];     
    System.out.println(str2);

用于: Stack-Overflow输出Stack-Overflow

用于: Stack Overflow输出Stack

.split("\\\\W")[0]似乎正在运作。

这个

  System.out.println("Hello-World".split("\\W")[0]);

只需从这里打印“你好”,然后

  System.out.println("Hello World".split("\\W")[0]);

做同样的事情

  System.out.println("Hello123123orld".split("\\W")[0]);

正如您所料,打印“Hello123123orld”。

这是使用正则表达式在C#中执行此操作的方法

string regex = "[^a-zA-Z0-9-]";
var s3 = Regex.Split(inputString, regex)[0];

您也可以在Java中实现类似类型的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM