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

标签 java android regex

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

我需要从中提取信息的字符串的形式是 <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/

相关文章:

java - 将数组的大小从一种方法获取到另一种方法,我将在其中用数字填充数组

java - 在选择时突出显示 TimePicker 中的数字

安卓 : can i attach picture when i tweet via native Twitter app

sql - 如何在 SQL 中定义替换模式?

javascript - 解析 CSS 背景图像和选择器

java - Spring 启动 : Let servlet dispatcher address only static content or handlers

java - 使用换行符的普遍接受的最佳实践

c# - Unity3D C# 计时器以毫秒为单位显示

android - Google Maps Android API v2 停止工作

php - 从发布的屏幕截图数据 php 中删除 img src