Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 - Fatal编程技术网

Java 用空格代替句子的某一部分

Java 用空格代替句子的某一部分,java,regex,Java,Regex,我正在试着换这根绳子 String sampl = "Mab by Gap David . Leave my Food" 使用此代码: String authorf = sampl.replace(".","").replaceAll("Leave.",""); 因此,在最后,我将只有Gap David的Mab 但目前我正在通过Gap David my Food获得单克隆抗体 请告诉我如何仅获得Gap David提供的Mab?sampl.replace(“.Leave my Food”,”

我正在试着换这根绳子

String sampl =  "Mab by Gap David . Leave my Food"
使用此代码:

String authorf = sampl.replace(".","").replaceAll("Leave.","");
因此,在最后,我将只有Gap David的
Mab

但目前我正在通过Gap David my Food获得单克隆抗体


请告诉我如何仅获得Gap David提供的
Mab

sampl.replace(“.Leave my Food”,”)
如果您只需要第一句话,这意味着删除句子结束符后的任何内容

从你的例子来看,似乎你也想删除句子结束符本身。删除终止符之前的任何空格似乎也是合乎逻辑的

句子结束符可以定义为句点(
)、问号(
)或感叹号(
)。你当然可以自己决定你想要什么样的句子终结符

所以。查找句子结束符:
[.?!]

还可以选择前面的任何空格:
\s*[.?!]

还可以选择以下内容之后的任何内容:
\s*[.?!].

所以你的代码应该是:

String authorf = sampl.replaceAll("\\s*[.?!].*","");

请参阅。

好吧,您的代码完全按照您的要求执行
replace(“.”,“”)
删除了所有点,并且
replaceAll(“Leave.”,“”)
删除了
Leave
,并在其后面加上一个字符(因为
replaceAll
正在使用正则表达式,正则表达式中的
表示除行分隔符以外的任何字符,如
\r
\n
)?请解释您希望代码做什么,以便ppl能够实现您希望完美工作的代码产生什么。@venkatKA,是的,我只需要第一句话。如果您硬编码
离开我的食物
,您可以使用一个标准类,允许我们迭代句子,然后您还可以硬编码结果:
String authorf=“Mab by Gap David”
。关键不在于在不知道文本的情况下做这件事吗?那么你的解决方案是什么呢?从句号开始,替换一切。请看。您的解决方案很难阅读,而且只适合特定情况。在OP中,字符串是硬编码的,为什么解决方案不是这样呢?编造一些随机正则表达式并不意味着它更好。只是如果你不懂正则表达式,它很难读懂。和Java一样,如果你不懂编程,就很难读懂。如果你不懂法语,法语很难阅读。这很难维护,而且只适用于特定情况。更好的解决方案。谢谢服务于我的目的,因为我想删除句号及其后的所有内容。@Lee哪个部分很难维护?什么特殊情况?它的专业性远不如您替换
的答案。留下我的食物
。现在,这只适用于特定情况。在OP的任何部分中,它都没有声明“我想在完全停止后删除所有内容”,而这正是您的解决方案所做的。你的正则表达式只是巧合,而我的解决方案突出了这个问题的问题。事实上,安德烈亚斯是对的,离开我的食物只是一个例子。因为我从外部源获取文本,其他文本可能在Gap David的Mab之后。因此,虽然李的答案取代了有问题的文本,但如果Gap David在Mab之后发布了Job a cat,则不会取代它。但Andreas solution为Gap David在Mab之后的任何文本做出了规定。没有疾病。