Regex 如何将正则表达式转换为返回除返回内容以外的所有内容?

Regex 如何将正则表达式转换为返回除返回内容以外的所有内容?,regex,Regex,nm的输出产生我想要解析的数据。此表达式工作正常:grep-Po'{9}U\K[^]+'test.txt 仅在匹配以以下开头的行后返回名称: “U” 但现在我想要相反的结果。我想要所有不匹配的数据,但只想要从第12列开始的数据 你是怎么做到的 蒂娅 下面是一个示例(来自内核模块的nm): 在其上运行命令grep-Po'{9}U\K[^]+'sample.txt将给出: drm_core_get_map_ofs drm_core_get_reg_ofs drm_core_reclaim_

nm的输出产生我想要解析的数据。此表达式工作正常:
grep-Po'{9}U\K[^]+'test.txt

仅在匹配以以下开头的行后返回名称:
“U”

但现在我想要相反的结果。我想要所有不匹配的数据,但只想要从第12列开始的数据

你是怎么做到的

蒂娅


下面是一个示例(来自内核模块的nm): 在其上运行命令
grep-Po'{9}U\K[^]+'sample.txt
将给出:

drm_core_get_map_ofs  
drm_core_get_reg_ofs  
drm_core_reclaim_buffers  
drm_exit  
drm_init  
drm_ioctl  
drm_mmap  
drm_open  
drm_poll  
drm_release  
但我想要的是其他类似的项目:

____versions  
__mod_alias38  
__mod_author210  
__mod_description211 
etc..  

我似乎已经弄明白了:

grep-Po'^(?{9}U.{11}\K[^]+'sample.txt


给出我想要的结果。

发布一个示例以及预期输出。是一个很好的资源,可以为您的意志塑造正则表达式。是的,该网站看起来对未来很好,但在这种情况下似乎不支持\K,我仍然不知道如何做。这并不能回答标题中的问题,但如果您同意坚持grep,您可以将-v选项传递给grep。将-v添加到grep会导致未选择任何行。若要进一步添加“and”类型条件,只需将其添加到先前的条件之后。假设您也不想要以8个零开头的项目,您可以这样做:
grep-Po'^(?!{9}U)^(?!0{8})。{11}\K[^]+'sample.txt
____versions  
__mod_alias38  
__mod_author210  
__mod_description211 
etc..