以hashtag开头的Python正则表达式

以hashtag开头的Python正则表达式,python,regex,Python,Regex,我有一个文本块,如: # <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V , 0 iput-object v1, v0, Lorg/cyanogenmod/audiofx/ActivityMusic$11;->this$0 Lorg/cyanogenmod/audiofx/ActivityMusic; , 4 invoke-direct v0, Ljava/lang/Object;->

我有一个文本块,如:

# <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V
         , 0 iput-object v1, v0, Lorg/cyanogenmod/audiofx/ActivityMusic$11;->this$0 Lorg/cyanogenmod/audiofx/ActivityMusic;
         , 4 invoke-direct v0, Ljava/lang/Object;-><init>()V
         , a return-void 
我希望Python中的reg exp只选择第一行

# <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V

这可能吗?谢谢

只需按换行符拆分并获取第一个元素:

test_str = "# <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V\n         , 0 iput-object v1, v0, Lorg/cyanogenmod/audiofx/ActivityMusic$11;->this$0 Lorg/cyanogenmod/audiofx/ActivityMusic;\n         , 4 invoke-direct v0, Ljava/lang/Object;-><init>()V\n         , a return-void "
print(test_str.split('\n')[0])
正则表达式方法的要点是

使用re.M多行标志 使用只返回1个匹配对象的搜索 必须是第一个字符或添加\s*-可选空白,以便可以匹配以它开头的行。
这不是一个标签。这是一个散列。如果line.startswithWrite a regex for me这里不接受问题:@khelwood的可能副本:这肯定不是该问题的副本:问题中没有提供regex。如果它不是第一行呢?我是一个愿意帮助他人的善良人,但在发布了一个实际有效的答案后,几秒钟内就投了反对票。。。我开始失去信心。我认为dv最有可能是因为人们不喜欢这个问题,而不是他们不喜欢你的答案。这是常见的坏习惯:我不喜欢这个问题,我会伤害那些帮助我的人。我抵消了dv,就我个人而言,我不会太担心它。
test_str = "some string\n# <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V\n         , 0 iput-object v1, v0, Lorg/cyanogenmod/audiofx/ActivityMusic$11;->this$0 Lorg/cyanogenmod/audiofx/ActivityMusic;\n         , 4 invoke-direct v0, Ljava/lang/Object;-><init>()V\n         , a return-void\n# <init> (Lorg/cyanogenmod/audiofx/ActivityMusic;)V "
ss = test_str.split('\n')
for s in ss:
    if s.strip()[0] == "#":
        print s
        break
p = re.compile(r'^#.*', re.M)
print p.search(test_str).group()