我要解析的数据包含以下格式的列:
Character Big Medium Meaning ImageCode Small Constitutens Lesson Frame Strokes JH JTPL Heisig Story koohiiStory1 koohiiStory2 On-Reading Kun-Reading Examples:
所有这些都由标签\t
分隔(即使它在浏览器上看起来不像它)。另请注意,每行末尾都有一个冒号:
。问题是列koohiiStory2
和examples
可能存在也可能不存在,并且可能还存在数据损坏且Heisig Story
内有选项卡的情况,但这些是少数
我想要匹配的是On-Reading
,Kun-Reading
和Examples
的值。所有这些都与其他人不同,因为他们不使用标准的英文字符(romaji),但他们使用日文字符而不是可能有一些逗号或点。同时保证Kun-Reading
或Examples
以冒号:
结尾,On-Reading
和Kun-Reading
将存在,并且所有三列都将连续。
以下是一些sample data。
如何解析返回this?
答案 0 :(得分:2)
好的,我会试一试。
由于您期望的内容主要是dot + space or tab* and :
(?<=\.(\s|\t)) // Positive lookbehind for a 'dot' + 'space or tab'
[^\w]+ // Any non words
(?=\:) // Positive lookahead for a ':'