我需要得到主要的'字符串中的子字符串。我使用python,我认为正则表达式可以帮助我。我需要开始匹配一个单词并在字符串中的稍后点停止匹配,其中字符串中不再有任何单词
所以,例如:
" , ? -- Mr. Smith . ? " -> "Mr. Smith"
" New ------- York " -> "New ------- York"
这显然比我将要使用的任何东西更丑陋,但是我希望它能得到重点,我需要它匹配第一个单词然后在最后一个单词之后停止匹配字符串,但它需要包含这两个字符之间的每个字符
谢谢,如果有人可以提供帮助!
答案 0 :(得分:1)
猜猜'\w.*\w'
应该有效
>>> re.search(r'\w.*\w', " , ? -- Mr. Smith . ? ").group(0)
'Mr. Smith'
答案 1 :(得分:1)
您可以尝试以下正则表达式
\w+(?:.*\w)?
它捕获1个或多个单词字符(\w+
),然后发现模式.*\w
的1或0个出现(结尾有0个或更多字符且带有单词字符)。 (?: ... )
语法表示非捕获组。
示例输出:
, ? -- Mr.. Smith . ? --> Mr.. Smith
" New ------- York " --> New ------- York
a --> a
('( a::'---' --> a
?..-t- ! --> t
答案 2 :(得分:1)
如果没有正则表达式,你可以非常简单地完成:
from string import punctuation
s = " , ? -- Mr. Smith . ? "
print(s.strip(punctuation + ' ')
输出是:
'Mr. Smith'
对于字符串" New ------- York "
,输出为'New ------- York'
。