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