如何在小于和大于之间查找文本,然后在 Java 中去除 <>?
Posted
技术标签:
【中文标题】如何在小于和大于之间查找文本,然后在 Java 中去除 <>?【英文标题】:How to find text between less and greater than, then strip the <> in Java? 【发布时间】:2016-01-01 00:59:54 【问题描述】:我不知道如何找到这些词.. 示例我有这个文本...
The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .
当我在google上搜索<
和>
时,我不知道要搜索什么原因,它将被忽略。需要帮助如何获取此字符串。
所以我会得到<location>
、<plural-noun>
、<location>
、<adjective>
、<location>
我必须使用charAt()
方法。我的尝试:
String string = this.fileName;
for(int i = 0; i < string.length(); i++)
if((string.charAt(i) == '<') && (string.charAt(i) == '>'))
System.println(""); //<-------- IM STUCK HERE
我不知道……快两天没睡了。
我当前但最后一个问题...如何删除显示的每个单词上的<
和>
?
String string = this.template;
Pattern pattern = Pattern.compile("<.*?>");
Matcher matcher = pattern.matcher(string);
List<String> listMatches = new ArrayList<String>();
while(matcher.find())
listMatches.add(matcher.group());
// System.out.println(listMatches.size());
int indexNumber = 1;
for(String s : listMatches)
System.out.println(Integer.toString(indexNumber) + ". " + s);
indexNumber++;
【问题讨论】:
为什么一定要使用charAt()方法?这可以使用正则表达式来解决。 @Brad 更新了新... 【参考方案1】:您可以使用Pattern
和Matcher
类。
-
搜索正则表达式模式
<.*?>
。
使用 Matcher 查找模式。
【讨论】:
为什么不使用<.+>
?
我如何使用它来匹配它? Pattern.compile("\\[(.*?)\\]");
我只想要<
和>
不处理这个...Pattern pattern = Pattern.compile("<.+>");
它正在工作......你知道如何删除每个字符串上的<
和>
吗?
如果你不想要尖括号,你可以尝试前瞻和后瞻。我认为正确的表达是Pattern.compile("(?<=<).+(?=>)")
【参考方案2】:
这里确实有两个问题,所以我只回答最后一个;当你有你想要的<text>
时,可以这样:
String text = "<the_text_you_want>";
text.replace("<","").replace(">","").replace("-"," ");
这将去掉分隔符。
【讨论】:
谢谢,你知道怎么把plural-noun
改成plural noun
吗?
Thanks for the feedback! Once you earn a total of 15 reputation, your votes will change the publicly displayed post score.
不能投票对不起老兄......如果我达到 15 岁,我会投票【参考方案3】:
阅读整行并将其存储在String line
中。然后,使用:
String line = "The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .";
boolean found = false;
String data[] = new String[20];
int counter = 0;
Arrays.fill(data, "");
for(int i = 0; i < line.length() && counter < 20; i++)
if(line.charAt(i) == '<')
found = true;
else if(line.charAt(i) == '>' && found)
found = false;
counter++;
else if(found)
data[counter] += line.charAt(i);
for(int i = 0; i < counter; i++)
System.out.println("Scanned data #" + (i + 1) + " = " + data[i]);
【讨论】:
以上是关于如何在小于和大于之间查找文本,然后在 Java 中去除 <>?的主要内容,如果未能解决你的问题,请参考以下文章