【发布时间】:2009-10-24 08:55:20
【问题描述】:
我有一个艰难的。
我有制表符分隔的文本来匹配正则表达式。
我的正则表达式看起来像:
^([\w ]+)\t(\d*)\t(\d+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)$
一个示例源文本是(为清楚起见,标签转换为 \t):
JJ\t345\t0\tTest\tSome test text\tmore text: pcre:"/\x20\x62\x3b\x0a\x09\x61\x2e\x53\x74\x61\x72/"\tNone
但是,问题是在我的源文本中,第 6 个字段包含一个正则表达式字符串。因此,它可以包含 \x09,这自然会破坏正则表达式,因为它也被视为选项卡。
有没有办法告诉正则表达式引擎,“匹配 \t 但不匹配文本 \x09。”我的猜测是否定的,因为它们是一样的。
如果没有,是否有任何字符可以安全地用于分隔包含正则表达式字符串的文本?
【问题讨论】:
-
始终指定您使用的引擎和语言。 (即使我假设您在给定示例输出的情况下使用 pcre)正则表达式的详细信息和缺点因一种引擎(和语言)而异。
-
使用Java 1.4.2内置的Pattern和Matcher类
标签: regex