Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式从制表符分隔的文本行中提取带空格的字符串值_Regex - Fatal编程技术网

Regex 正则表达式从制表符分隔的文本行中提取带空格的字符串值

Regex 正则表达式从制表符分隔的文本行中提取带空格的字符串值,regex,Regex,我有以下格式的文本行 1344232458005260 2 abcdef e168ae6ec0804987b1ce723465cbbb50 1----125126127 2-22 B53A5993665405180E3ED015E094195 77 66-98----16953消息调用79112 我需要提取索引26处的字符串消息调用。如果所需字符串始终位于同一位置(例如始终位于第五位),则不能使用regexp。只需用分隔符(在您的例子中是“”)打断字符串以获得一个数组(我相信Java有这样的基本

我有以下格式的文本行

1344232458005260 2 abcdef e168ae6ec0804987b1ce723465cbbb50 1----125126127 2-22 B53A5993665405180E3ED015E094195 77 66-98----16953消息调用79112


我需要提取索引26处的字符串
消息调用

如果所需字符串始终位于同一位置(例如始终位于第五位),则不能使用regexp。只需用分隔符(在您的例子中是“”)打断字符串以获得一个数组(我相信Java有这样的基本方法),然后按数组索引访问所需的部分

我不熟悉java,但这里有一个PHP用于您的任务的工作示例(假设我们想要得到
e168ae6ec0804987b1ce723465cbbb50
-5th):


i、 e.
e168ae6ec0804987b1ce723465cbbb50
?请提供更多条件。你的文本可能是什么,哪些部分总是存在,哪些部分不是?我已经写了!?(\\S+\\t+{26}要分析值但不分析的正则表达式包含制表符分隔的字段。字段是可选的。如果该值不存在,则在进入系统之前将被替换为“-”。因此,所需字符串始终位于第5位?是的,所有值都位于给定文本行的固定位置,以tab分隔。issue is输入文件包含GBs数据。使用给定的分隔符分析字符串会起作用,但会降低系统的性能,因此会寻找正则表达式来提取值。在包含GBs数据的输入文件上使用正则表达式速度会非常慢。如果必须解析每一行数据,请逐行拆分文件并处理每一行。若您必须仅从文件的开头获取所需的字符串,请读取文件中的前1000个字节并进行处理。
$string = '1344232458000 5260 2 abcdef e168ae6ec0804987b1ce723465cbbb50 1 - - - - 125,126,127 2 - 22';

$array = explode(' ', string);

var_dump($array[4]); // prints `e168ae6ec0804987b1ce723465cbbb50`