【发布时间】:2016-06-07 16:55:26
【问题描述】:
我无法为以下场景编写一些正则表达式。
1:This is <b>My Text</b> some other <b> </b> text as well <b></b><b>non empty tag1</b> other text.
预期输出: some other <b> </b> text as well <b></b>
2 : This is <b>My Text</b> some other <b> </b> text as well <b></b><b>non empty tag2</b> other text.
预期输出: some other <b> </b> text as well <b></b>
在这里,如果您注意到文本 My Text 是固定的(静态),但第二个非空标记值可能会有所不同。正则表达式应该能够提取<b>My Text</b> 和之后第一次出现的非空<b> 标记之间的文本。
我自己已经尝试了很多,但无法达到同样的效果。等待一些回应。
更新: 我的尝试如下。
String BOLD_START_TAG = "(\\<b\\>)";
String BOLD_END_TAG = "(\\<\\/b\\>)";
StringBuffer regexBuffer = new StringBuffer("^(.*)")
.append(BOLD_START_TAG)
.append(regex)
.append(BOLD_END_TAG)
.append("(.*)")
.append(BOLD_START_TAG)
.append(nextElementString)
.append(BOLD_END_TAG)
.append("(.*)$");
String regex = regexBuffer.toString();
System.out.println(myText.replaceAll(regex, "$5"));
【问题讨论】:
-
你尝试过哪些正则表达式,它们是如何失败的?
-
可悲的是,几乎任何说 regex 和 html 的问题都会遭到反对
-
你会说如果你不知道答案,[...],你会做出相当的假设。如果您将鼠标悬停在投票按钮上,您会注意到它指出 这个问题 [...] 没有用。 这很可能是这里发生的事情。不要使用正则表达式解析 HTML。
-
问你想要什么,但如果用户认为它没有用,请不要感到惊讶。并且绝对不要要求他们不要投反对票。