1

我有两个字符串,例如“堆栈溢出”和“堆栈溢出”。现在我正在研究一种字符串匹配方法,我需要格式化一些字符串。

每个特殊字符都应该是字符串的结尾,连字符除外。所以“堆栈溢出”将变为“堆栈”,而“堆栈溢出”将保持不变。

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

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

4

3 回答 3

3

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

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

对于:Stack-Overflow输出Stack-Overflow

对于:Stack Overflow输出Stack

于 2013-09-10T08:17:19.400 回答
1

这是在 C# 中使用正则表达式的一种方法

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

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

于 2013-09-10T08:09:18.290 回答
0

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

这个

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

只是从这里打印“Hello”,然后

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

做同样的事情,而

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

如您所料,打印“Hello123123orld”。

于 2013-09-10T07:59:01.090 回答