gpt4 book ai didi

java - 从字符串中提取所有 标签

转载 作者:行者123 更新时间:2023-11-30 03:07:37 24 4
gpt4 key购买 nike

我一直在尝试使用正则表达式提取字符串中的“指针”以将其替换为实际值。源字符串是从数据库中提取的,可以有多种形式——我希望你能明白我的意思:

我需要从中提取信息的字符串的形式是 <X Description> blah blah <Y> blah blah blah <Z Differentdescription>

我需要提取

<X Description>,
<Y>,
<Z Differentdescription>

来自字符串(以便在显示给用户之前可以用实际值替换它们)。

我认为这样的事情会起作用:(<[XYZ]( \w+)?>)+

但是,它只捕获“<X Description>”标签(它的意思),以及“描述”(我不太明白),而没有捕获任何一个<Y>。或 <Z Description>

我不是要解析 XML 或 HTML(我知道正则表达式不赞成这样做),并且不会有任何嵌套标签,我只需要获取匹配序列。

最终这将用于 Android 应用程序,但我需要先让正则表达式工作!

最佳答案

你可以像这样使用积极的回顾和积极的展望:

String str = "<X Description> blah blah <Y> blah blah blah <Z Differentdescription>";
Pattern pattern = Pattern.compile("(?<=<)[\\w\\s]+?(?=>)");
Matcher m = pattern.matcher(str);
while(m.find()){
System.out.println(m.group(0));
}
  1. (?<=<)[\w\s]+? - 将匹配 <后跟任何单词或空格
  2. [\w\s]+?(?=>) - 将匹配任何后跟 > 的单词/空格

输出:

X Description
Y
Z Differentdescription

关于java - 从字符串中提取所有 <xxxx> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533651/

24 4 0