Python:使用正则表达式使用其边界在字符串中获取未知单词

时间:2017-08-04 15:07:04

标签: python regex string

我有以下字符串

string1 = '    name.somefunction() '

我想只得到string1的一部分:'name'。但是'name'并不总是相同的,在我的问题的不同字符串中。 所以我需要使用正则表达式来匹配任何空格和字符串之间的单词:'。somefunction()',但我真的不知道正确编写正则表达式。 任何帮助都非常欢迎

2 个答案:

答案 0 :(得分:0)

您可以使用前瞻操作员。此表达式应匹配.字符前的任何单词:

\w*(?=\.)

以下是python中的一个示例:

# IMPORT
import re

# INPUT STRING
inputString = '    name.somefunction() '

# GET LIST OF MATCHES FROM EXPRESSION 
matches = re.findall('\w*(?=\.)', inputString)

# PRINT FIRST MATCH
print(matches[0])

答案 1 :(得分:0)

regex = re.compile(r'\s+(\w+)\.somefunction\(\)')
match = re.search(regex, string1)
word = match.group(1)

变量'word'将获得括号(\w+)中的值,在本例中为'name'。

为了解释,\s+匹配一个或多个连续的空白字符(空格,在这种情况下,尽管它可以是任何其他空格)。 (\w+)构成一个匹配组(匹配对象保存括号内匹配的任何内容),其中包含一个或多个单词字符(字母,数字,下划线)。 \.是一个文字.字符,然后somefunction()用于确保您只匹配所需特定功能的案例。

如果要使表达式更具体,请将正则表达式更改为r'\s+([a-zA-Z_]\w*)\.somefunction()