是否可以将正则表达式限制为给定数量的字符或在一个正则表达式中执行两个逻辑 AND 连接的测试?

是否可以将正则表达式限制为给定数量的字符或在一个正则表达式中执行两个逻辑 AND 连接的测试?

我必须将表分成几列。

相邻两列中的文本均与表达式匹配(\S+\s+)+\s*。但有时,一列会比应有的要大一些,然后第一列元素末尾只有一个空格,因此第一列的正则表达式也会捕获第二列。示例中的数字 1 和 2 表示字符属于哪一列,文件中实际上没有这些数字,例如:

111 111 11111 111111 222 2 2222 222 2
11 1 11  11111       2 22 2222 222 2
111 111 11 11 111 1 111 222 2 222 22 2
11 1 11  11111       2 22 2222 222 2
111 111 11111 11111  222 2 2222 222 2

第一列的标称宽度为 20 个字符,但如果一个“单词”从其中开始并延伸到第 20 列之后,它仍然属于第一列,直到用空格分隔为止。请参见第三行中的示例。

是否有办法在一个正则表达式中按顺序执行两个测试:首先选择(在示例中) 20 个字符,但如果第 20 个字符与空格不同,则(.{19}\S+\s)在第一列的捕获组中选择?

相关内容