Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我想在Java中的空白处分界。但是在文本中,它们是html标记,我不想在这里拆分单词。
因此,例如
我考虑过使用split,并在javascript中找到了一个正则表达式,但无法将其转换为java。
有没有比使用split和正则表达式更好的方法?
[编辑]
这是我可以转换的javascript正则表达式,但我想知道是否有比正则表达式更好的方法?
https://stackoverflow.com/a/7552371/2170547
正则表达式匹配3个单独的组
带有结束标记的HTML标签
没有结束标记的HTML标记
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我想在Java中的空白处分界。但是在文本中,它们是html标记,我不想在这里拆分单词。
因此,例如
"hello <a>John Smith</a> hey ho"
应该拆分为:hello
<a>John Smith</a>
hey
ho
我考虑过使用split,并在javascript中找到了一个正则表达式,但无法将其转换为java。
有没有比使用split和正则表达式更好的方法?
[编辑]
这是我可以转换的javascript正则表达式,但我想知道是否有比正则表达式更好的方法?
https://stackoverflow.com/a/7552371/2170547
最佳答案
这是一些实际有效的Java7代码http://ideone.com/PWv56h
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
String test = "testing 1 2 3 <a title=\"a demo\" href=\"\">testing 4 5 6</a> testing\t7\n8\r9 <br /><script src=\"blah\" />more text";
java.util.regex.Matcher m = java.util.regex.Pattern.compile("(<(?<tag>[A-Za-z]+)[^>]*?>[^<]*</\\k<tag>>)|(<[A-Za-z]+[^>]*?/>)|([^\\p{Space}]+)").matcher(test);
while(m.find())
System.out.println(m.group());
}
}
正则表达式匹配3个单独的组
带有结束标记的HTML标签
没有结束标记的HTML标记
10-09 02:09