【问题标题】:How to get the passed int value in HTML [closed]如何在 HTML 中获取传递的 int 值
【发布时间】:2013-01-14 09:00:56
【问题描述】:

我有一个这样的字符串:

static String name = "what is the language used in android <img height=\""+height+"\" width=\""+width+"\">";

我需要获取 heightwidth 的值,我正在即时传递它们。现在我需要根据单个项目获取值。

我尝试过正则表达式,但它们不起作用。

【问题讨论】:

  • 你有输入字符串的高度和宽度。你为什么不直接使用它们?
  • @nhahtdh 是的,但是我在飞行中传递了高度和宽度,我处于需要根据单个项目获取这些值的情况
  • 那么你如何区分不同的项目呢?无论如何,Regex 都会抓住所有这些。
  • @nhahtdh 这就是我要搜索的内容
  • 您可以只存储您即时插入的号码。我认为您应该编辑您的问题以添加更多上下文。否则,它看起来不像是应该用正则表达式解决的问题。

标签: java android html regex


【解决方案1】:

你可以用这个:

int height = 0;
int width = 0;

Pattern h = Pattern.compile("height=\"([0-9]*)\"");
Pattern w = Pattern.compile("width=\"([0-9]*)\"");

Matcher m1 = h.matcher(name);
Matcher m2 = w.matcher(name);

if (m1.find()) {
    height = Integer.parseInt(m1.group(1));
}

if (m2.find()) {
    width = Integer.parseInt(m2.group(1));
}

System.out.println(height);
System.out.println(width);

【讨论】:

  • 这行不通。字符串类matches 函数的工作方式与其他语言不同。
  • @nhahtdh 怎么不同?
  • 它将检查整个字符串是否与正则表达式匹配。这就像在开头和结尾将^$ 放入正则表达式。您也无法访问捕获的文本,因为此方法仅用于验证。
  • @nhahtdh 谢谢,更新了...
  • 它仍然没用,因为您无法获取捕获的文本。
【解决方案2】:

试试这个简单的正则表达式:

<img\s+height="(\d+)"\s+width="(\d+)"\s*>

还有你的代码:

List<String> matchList = new ArrayList<String>();

Pattern regex = Pattern.compile("<img\\s+height=\"(\\d+)\"\\s+width=\"(\\d+)\"\\s*>");
Matcher regexMatcher = regex.matcher(inputString);
while (regexMatcher.find()) {
    matchList.add(regexMatcher.group(1));

解释:

\d 匹配任何十进制数字。

\s 匹配任何空白字符。

(subexpression) 捕获匹配的子表达式

【讨论】:

  • 按照它的方式,你只能得到字符串的高度。
【解决方案3】:

我相信这应该可以提高身高:

(?<=height=")[^"]*(?=")|(?<=height=')[^']*(?=')

然后您可以在该正则表达式中将height 的两个实例替换为宽度以获得宽度。

这可能也行得通,而且更简洁:

(?<=height=("|')).*?(?=\1)

【讨论】:

  • 对于第二部分,您可能指的是[^']* 而不是[^"]*
  • @nhahtdh 是的,这就是我的意思。已更正。谢谢。
  • @JLRishe 如何应用于该字符串?因为没有这样的方法叫做 get
  • @Goofy 请搜索有关如何在您的开发平台中应用正则表达式的教程,我不熟悉。应该有大量可用的信息。
  • @Goofy:匹配器循环。查看 Pattern 和 Matcher 类以获取更多信息。不过,我仍然认为这是一个糟糕的主意。
猜你喜欢
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2017-03-01
  • 1970-01-01
  • 2019-02-05
相关资源
最近更新 更多