Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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_String - Fatal编程技术网

Java正则表达式-空格和;匹配词

Java正则表达式-空格和;匹配词,java,regex,string,Java,Regex,String,我不熟悉正则表达式,但我认为我的问题应该用它来解决。基本上,我想用“dog”替换字符串中的空格,只要“cat”或“bird”或“dog”不在前面或后面 例如: Good Dog = Good Dog Large Brown = Large Dog Brown Cat Ugly = Cat Ugly 因此,只修改第二个字符串。我可以很容易地处理类似字符串替换之类的事情,但我很想知道这是否应该在regex中完成。您正在寻找机制。您的代码看起来或多或少像 yourString

我不熟悉正则表达式,但我认为我的问题应该用它来解决。基本上,我想用“dog”替换字符串中的空格,只要“cat”或“bird”或“dog”不在前面或后面

例如:

    Good Dog = Good Dog
    Large Brown = Large Dog Brown
    Cat Ugly = Cat Ugly
因此,只修改第二个字符串。我可以很容易地处理类似字符串替换之类的事情,但我很想知道这是否应该在regex中完成。

您正在寻找机制。您的代码看起来或多或少像

yourString = yourString.replaceAll("(?<!cat|bird|dog)\\s(?!cat|bird|dog)"," dog ")
//                                  ^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^
//                               negative look-behind   negative look-ahead
输出:

Good Dog
Large dog Brown
Cat Ugly

@我正在改进这个答案:)正在寻找能够为读者提供更多信息的正确链接。
Good Dog
Large dog Brown
Cat Ugly