java - tExtractJsonFields Talend,使用正则表达式按长度将列分成多列

标签 java regex extract talend

我的作业有一个来自 xml 文件的无限制列,该列的长度可以超过 4000 个字符,但是,这是 Oracle varchar 列的最大长度。我需要能够使用 Talend 中的 tExtractRegexFields 组件将每 3000-4000 个字符的列分隔到一个单独的列中。

但是,我不擅长正则表达式,遇到了一些麻烦。

文本的格式一般是这样的:

"<p>#Principal Responsibilities: </p>
<p>INSERT EXTREMELY LONG DESCRIPTION HERE</p>"

我试过用这样的东西:

"([a-zA-Z0-9]{0,4000})" 

但我运气不好,它只捕获了 1 个单词。

作业是这样设置的:

tFileInputXML------>tExtractRegexFields----->tMap------tOracleOutput

我知道我缺少的是一些简单的东西,但我就是想不通是什么!

最佳答案

您需要捕获的不仅仅是字母数字字符。试试“([.]{0,4000})”,假设 Talend 接受句号表示任何字符,那应该可以为您提供所有信息。 或者,您可以接受“([a-zA-Z0-9 ]{0, 4000})”(注意空格),这应该让您得到不止一个单词,但在第一个标点符号之后可能什么也没有。

关于java - tExtractJsonFields Talend,使用正则表达式按长度将列分成多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328589/

相关文章:

python - 为什么检索到的数据显示为空白而不是输出正确的数字?

java - ListView getFirstVisiblePosition

java - Spark-Java : How to change Timestamp format of columns in Dataset<Row>?

c# - 使用正则表达式获取文件名的中间部分

java - 使用字符串解析值

bash - 在 Windows 中使用 Ghostscript 将多个 PDF 文件转换为子目录中的文本文件

python - Pandas DataFrame - 提取两个字符串之间的字符串并包含第一个分隔符

java - 如何使用不同的标签解码 xml

java - 在 Java 中查找素数

javascript - 为什么这个 RegEx 在 JavaScript 中不起作用?