Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式替换java中的字符序列_Java_Regex_Matcher - Fatal编程技术网

使用正则表达式替换java中的字符序列

使用正则表达式替换java中的字符序列,java,regex,matcher,Java,Regex,Matcher,我有以下文字 “这个球不是你的,这个是约翰的” 我想纠正这一点 “这个球不是你的,这个是约翰的” 如何在Java中使用模式和匹配器实现这一点? 这里有一个在这种情况下,您可以使用: s = s.replaceAll("\\b?\\b", "'"); 那么你就不太可能像@glowcoder提到的那样替换合法的问号了。然而,我认为@Philipp是正确的,这确实是一个字符编码问题。看起来你的文字应该是: "This ball isn’t yours, this one is John’s" 如果

我有以下文字

“这个球不是你的,这个是约翰的”

我想纠正这一点

“这个球不是你的,这个是约翰的”

如何在Java中使用模式和匹配器实现这一点?


这里有一个

在这种情况下,您可以使用:

s = s.replaceAll("\\b?\\b", "'");
那么你就不太可能像@glowcoder提到的那样替换合法的问号了。然而,我认为@Philipp是正确的,这确实是一个字符编码问题。看起来你的文字应该是:

"This ball isn’t yours, this one is John’s"

如果编码为cp-1252,但解码为ASCII,则卷曲的单引号将替换为问号。如果是这种情况,您可能会找到其他字符,如卷曲双引号(
)、en-dash(
)和em-dash(
-
),这是对字符编码问题的事后修复吗?你有没有理由使用正则表达式来解决这个问题,而不仅仅是用一个字符序列替换另一个字符序列?你如何避免
这是约翰的球?
变成
这是约翰的球?
这是约翰的球吗?->这是约翰的球吗?@smas,这不会发生,因为
([st])
我已经评论了你文章的第一个版本。但是仍然替换“?”to对我来说很奇怪。
"This ball isn’t yours, this one is John’s"