Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 匹配所有不匹配的内容';t后面跟一个字母的数字_Regex_Regexkitlite - Fatal编程技术网

Regex 匹配所有不匹配的内容';t后面跟一个字母的数字

Regex 匹配所有不匹配的内容';t后面跟一个字母的数字,regex,regexkitlite,Regex,Regexkitlite,如果这是在别处回答的话,我表示歉意——我做了一些搜索,但找不到答案 假设我有一个包含大量内容的文本文件。在该内容中有一个职业代码,其格式始终为数字后跟大写字母 如何仅从文件中提取occ代码?简单地说,我想删除文件中与数字大写字母模式不匹配的所有内容。您可以使用/(\d+[A-Z])/匹配/(\d+[A-Z]))/根据occ代码在文件中的显示方式,编写一个逐行或逐字扫描的脚本,并可能使用正则表达式检查匹配项,然后将其写入另一个文件是一个简单的解决方案 您可以对整个文档使用单个正则表达式匹配,并对结

如果这是在别处回答的话,我表示歉意——我做了一些搜索,但找不到答案

假设我有一个包含大量内容的文本文件。在该内容中有一个职业代码,其格式始终为数字后跟大写字母


如何仅从文件中提取occ代码?简单地说,我想删除文件中与数字大写字母模式不匹配的所有内容。

您可以使用
/(\d+[A-Z])/
匹配
/(\d+[A-Z]))/

根据occ代码在文件中的显示方式,编写一个逐行或逐字扫描的脚本,并可能使用正则表达式检查匹配项,然后将其写入另一个文件是一个简单的解决方案


您可以对整个文档使用单个正则表达式匹配,并对结果进行迭代,但这可能会带来问题,具体取决于文件的大小。

编写一个脚本,根据occ代码在文件中的显示方式逐行或逐字扫描,并可能使用正则表达式检查匹配,然后将其写入另一个文件是一个简单的解决方案


您可以在整个文档上使用一个正则表达式匹配项并对结果进行迭代,但这可能会带来问题,具体取决于文件的大小。

下面是一个粗略的尝试,使用sed删除除所需代码之外的所有内容。(请注意,我将“数字”解释为一个由一个或多个数字组成的字符串,没有小数点或前导减号。)

sed-e's/\([A-Z]\)[0-9]*/\1/g'-e's/[0-9]*[^0-9A-Z]*///g'-e's/[0-9]*$/'-e'/^$/d'
第一个命令删除非数字的大写字母之后的任何内容(因此可能是另一个代码的开头),第二个命令删除任何数字后面的大写字母以外的内容,第三个命令删除尾随数字,第四个命令删除空行


我做了一些测试,看起来效果不错。如果有人能找到它失败的地方,我会很高兴地修改它。

这里有一个粗略的尝试,除了使用sed删除所需的代码之外,其余都删除了。(请注意,我将“数字”解释为一个由一个或多个数字组成的字符串,没有小数点或前导减号。)

sed-e's/\([A-Z]\)[0-9]*/\1/g'-e's/[0-9]*[^0-9A-Z]*///g'-e's/[0-9]*$/'-e'/^$/d'
第一个命令删除非数字的大写字母之后的任何内容(因此可能是另一个代码的开头),第二个命令删除任何数字后面的大写字母以外的内容,第三个命令删除尾随数字,第四个命令删除空行


我做了一些测试,看起来效果不错。如果有人能找到失败的案例,我会很高兴地修改它。

的确如此。在这种情况下,只需匹配您想要的内容并将其吐出来,而不是删除所有其他内容,这更简单。在这种情况下,只需匹配您想要的内容并将其吐出来,而不是删除所有其他内容。
sed -e 's/\([A-Z]\)[0-9]*/\1/g' -e 's/[0-9]*[^0-9A-Z]*//g' -e 's/[0-9]*$//' -e '/^$/d' < filename