Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java内部文本(getTextContents())问题_Java_Xml_Regex - Fatal编程技术网

Java内部文本(getTextContents())问题

Java内部文本(getTextContents())问题,java,xml,regex,Java,Xml,Regex,我尝试用Java进行一些解析,我使用Cobra HTML解析器将HTML转换成DOM,然后使用XPath获得我想要的节点。当我到达所需的级别时,我调用node.getTextContents,但这给了我一个类似 "\n\n\nValue\n-\nValue\n\n\n" 是否有一种内置的方法来消除换行符?我想做一个正则表达式,就像 (?:\s*([^-]+)\s*-\s*([^-]+)\s*) 关于内部文本,我真的不想处理文本之间可能存在的不同空白符号 输入示例: Value - Value

我尝试用Java进行一些解析,我使用Cobra HTML解析器将HTML转换成DOM,然后使用XPath获得我想要的节点。当我到达所需的级别时,我调用node.getTextContents,但这给了我一个类似

"\n\n\nValue\n-\nValue\n\n\n"
是否有一种内置的方法来消除换行符?我想做一个正则表达式,就像

(?:\s*([^-]+)\s*-\s*([^-]+)\s*)
关于内部文本,我真的不想处理文本之间可能存在的不同空白符号

输入示例:

Value
-
Value
谢谢

您可以使用


第一个参数是正则表达式:例如,您可以用replaceAll\\s+替换原始字符串中所有连续的空格块。

我不完全确定我是否正确理解了这个问题,但删除所有空格的最简单方法是:

字符串s=node.getTextContents.replaceAll\\s


如果您只想去掉前导/尾随空格,请使用trim。

我相信,事实上,如果输入相同,则.Net将返回Value-Value,这显然在节点内部有那些换行符。所以,更好的说法是,DOM解析器是否可以将那个字符串返回给我,其中至少包含和我无关的空格?综合考虑,我的速度非常慢。你们说得对,那些正则表达式工作得很好,我的不行——用Java就是这样。但是Java处理正则表达式,它与.Net和JavaScript不同。总之,在简化我的后,我发现?:\s*[^-]+?:\s*最接近我想要的。因此,我的最新问题,希望没有上一个问题那么彻底,是如何去掉最新正则表达式返回的单个尾随空格?在示例中,每个“值”后面都有一个空格或换行符,尝试使用尾随作为源?
String trimmed = original_string.replaceAll("\n", "");