如何匹配以下?

时间:2016-01-15 02:32:08

标签: regex parsing

我要解析的数据包含以下格式的列:

Character   Big Medium  Meaning ImageCode   Small   Constitutens    Lesson  Frame   Strokes JH  JTPL    Heisig Story    koohiiStory1    koohiiStory2    On-Reading  Kun-Reading Examples:

所有这些都由标签\t分隔(即使它在浏览器上看起来不像它)。另请注意,每行末尾都有一个冒号:。问题是列koohiiStory2examples可能存在也可能不存在,并且可能还存在数据损坏且Heisig Story内有选项卡的情况,但这些是少数

我想要匹配的是On-ReadingKun-ReadingExamples的值。所有这些都与其他人不同,因为他们不使用标准的英文字符(romaji),但他们使用日文字符而不是可能有一些逗号或点。同时保证Kun-ReadingExamples以冒号:结尾,On-ReadingKun-Reading将存在,并且所有三列都将连续。

以下是一些sample data

如何解析返回this

1 个答案:

答案 0 :(得分:2)

好的,我会试一试。

由于您期望的内容主要是dot + space or tab* and :

中的非ascii 字符
(?<=\.(\s|\t)) // Positive lookbehind for a 'dot' + 'space or tab'
[^\w]+ // Any non words
(?=\:) // Positive lookahead for a ':'

Working sample on regex101

enter image description here