java正则表达式获取字符串的某些部分

标签 java android regex

我第一次尝试在 Java 中使用正则表达式。 我想获取字符串的某些部分。该字符串有点复杂:

<description>
  &lt;a href='http://testlink.html' alt='some text'&gt;&lt;img border='0'
  src='http://s2.glbimg.com/zzag70iNYX-QK24sUp0YXQmmXhx7yb8j2Sq2YK7tvX3A6vCwEUOFnFTBONQFT-
  ni/s.glbimg.com/es/ge/f/original/2012/04/25/image.jpg' 
  alt='some' title='text' /&gt;&lt;/a&gt;&lt;br /&gt;some text; some text
</description>

我的需求是获取 hrefalt 中的字符串。为此,我正在执行以下代码:

for(Element element : elements)
{
    //Elements children = element.children();
Pattern pattern = Pattern.compile("a\\bhref=*(.html|.htm)>");
String[] data = pattern.split(element.text()); ...
}

等等。目前我正在尝试仅获取 href 但没有成功。返回始终是整个字符串。不正确吗?我已经添加了 html 扩展以保证没有任何反应。

最佳答案

public static void main(String[] args){
  String sourcestring = "<description>&lt;a href='http://testlink.html' alt='some text'&gt;&lt;img border='0' src='http://s2.glbimg.com/zzag70iNYX-QK24sUp0YXQmmXhx7yb8j2Sq2YK7tvX3A6vCwEUOFnFTBONQFT-
ni/s.glbimg.com/es/ge/f/original/2012/04/25/image.jpg' 
alt='some' title='text' /&gt;&lt;/a&gt;&lt;br /&gt;some text; some text</description>";
  Pattern re = Pattern.compile("(?<=href='|alt=')[^']*|(?<=href=\"|alt=\")[^\"]*");
  Matcher m = re.matcher(sourcestring);
  int mIdx = 0;
    while (m.find()){
      for( int groupIdx = 0; groupIdx < m.groupCount()+1; groupIdx++ ){
        System.out.println( "[" + mIdx + "][" + groupIdx + "] = " + m.group(groupIdx));
      }
      mIdx++;
    }
  }

关于java正则表达式获取字符串的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872709/

相关文章:

android - 如何更改无限进度条的颜色?

android - 解释 TF lite 在对象检测 API 上的输出

python - 查找单词在字符串中的位置

java - 在 RestController 方法中获取 ServerWebExchange

java - 递归缺失值无法弄清楚如何修复,请测试人员

Java - 更精确的重新抛出的功能

android - 在应用程序上为不同的 Android 版本创建 - 在较低版本上可用,仅在较高版本中导入

regex - 将 url 重定向到 url 到 www

regex - 正则表达式中的意外替换

java - 如果我只有类的对象,如何覆盖类的行为?