繁体   English   中英

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

[英]Python: get unknown word in a string using regex, using its boundaries

我有以下字符串

string1 = '    name.somefunction() '

我只想获取string1的一部分:“名称”。 但是我的问题中的不同字符串中的“名称”并不总是相同的。 因此,我需要使用正则表达式来匹配任何空格和字符串之间的单词:“。somefunction()”,但我真的不知道如何正确编写正则表达式。 任何帮助都将受到欢迎

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

\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])
regex = re.compile(r'\s+(\w+)\.somefunction\(\)')
match = re.search(regex, string1)
word = match.group(1)

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

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

如果要使表达式更特定于有效的python变量名,请将正则表达式更改为r'\\s+([a-zA-Z_]\\w*)\\.somefunction()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM