我正在使用一些制表符分隔的字符串,所以我一直在使用以下匹配模式来匹配除标签之外的所有内容:
[^\\t]+
不幸的是,我的模式在文本中排除了ts。例如:
"Jim\tand\tjane\twent\tto\twork."
符合以下条件:
Jim and jane wen o work.
有关如何排除标签但包含ts的任何想法。
更新:我尝试在Rubular和RegexPal上使用[^ \ t] +。这两个网站似乎都没有将其识别为标签。然而,两者都将\ t识别为制表符和t。
第二次更新:我认为这是一个接口问题。我将模式放入rails控制台,[^ \ t]确实可以正常工作。感谢大家的好评和意见。
答案 0 :(得分:5)
看起来用户界面可能会干扰你一点。问题的一半是[^\t]
不需要反斜杠转义。
问题的另一半是Web界面不接受键盘上的标签,因此它认为您的测试字符串实际上包含反斜杠后跟t。
尝试在外部文本编辑器中键入选项卡,然后将该选项卡复制并粘贴到Rubular中的测试字符串中,使其看起来像空白。然后[^\t]+
应匹配非标签而不省略't'字符。
答案 1 :(得分:1)
[^\t]+
可以解决您的问题。
您的原始正则表达式[^\\t]+
将被解释为:匹配1个或更多,+
,字符除了,^
,反斜杠,\
或小写字母t ,t
。
rubular.com使用[^\x09]+
的工作示例和“Jim and jane开始工作。”
rubular.com使用[^\t]+
的工作示例和“Jim and jane开始工作。”