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

Java 如何从'<';至'&燃气轮机';在爪哇

Java 如何从'<';至'&燃气轮机';在爪哇,java,string,substring,Java,String,Substring,我有一个接受输入字符串的程序。我想删除字符“”中的任何内容。例如,如果字符串 "P.S.<!-- BODY { color:white; background-color: transparent; font-family:sans-serif; } --> Hello how are you today?" “你好,你好吗?” 我希望输出字符串只包含“您好,今天好吗?”。在Java中有没有一种简单的方法可以做到这一点?谢谢使用正则表达式: news

我有一个接受输入字符串的程序。我想删除字符“”中的任何内容。例如,如果字符串

"P.S.<!--
BODY
   {
   color:white;
   background-color: transparent;
   font-family:sans-serif;
   }
--> Hello how are you today?"
“你好,你好吗?”

我希望输出字符串只包含
“您好,今天好吗?”
。在Java中有没有一种简单的方法可以做到这一点?谢谢使用正则表达式:

newstr = str.replaceAll("<[^>]*>", "");
newstr=str.replaceAll(“]*>”,“”);
这意味着查找以
开头的每个子字符串,然后查找字符
。然后用空字符串“
替换所有这些子字符串


参考:

如果您希望避免使用正则表达式,可以使用子字符串:

String origText = "P.S.<!--"+
    "BODY"+
       "{"+
       "color:white;"+
       "background-color: transparent;"+
       "font-family:sans-serif;"+
       "}"+
    "--> Hello how are you today?";
String revised = origText.substring(0, origText.indexOf('<')) +
    origText.substring(origText.lastIndexOf('>')+1, origText.length());
String origText=“你好,今天好吗?”;
String revised=origText.substring(0,origText.indexOf(“”)+1,origText.length());

`

而“”组合只存在一次或多次?我建议将目标对准
而不是
,这样您实际上是在提取注释,而不仅仅是任何标记。也许您的意思是
]*>
?当前的regexp将把
“bar”
变成
,而不是
“bar”
@Mike Samuel:已经编辑好了,谢谢。发生的事情是,我最初想使用一个不情愿的量词,即
/
,但决定不使用它的概念复杂性。我在改变决定的过程中犯了一个编辑错误。谢谢,这个方法非常有效。有没有一个像replaceAll这样的方法可以用于跨类?它就像一个字符串,但是它有额外的东西,比如文本颜色和样式,很抱歉延迟了。需要注意的关键是,Scanner扩展了CharSequence。因此,您构建一个模式,在该序列上获得匹配器,然后进行替换。即:
String result=Pattern.compile(“]*>”).matcher(myscannerobject.replaceAll(“”)这将在
String text=“这是atest”上失败确实如此。若要修复,只需将
lastIndexOf('>')
替换为
indexOf('>')
@glowcoder:true,但OP没有指定多次出现。@Nayuki indexOf将错过第二次出现。您必须循环才能在此类示例中使用子字符串。@JJ:上下文非常明显-它是一个XML注释。因此,虽然OP没有说“我需要多发事件处理”,但他的例子显然是一个标准。