提取文本字符串中下划线后的单词
若要在字符串中捕获下划线标记单词之后的单词,但不包括下划线标记的单词本身,你可以利用以下正则表达式:
_\w+\s([\w\s]+)
该正则表达式的操作原理如下:
_\w+\s
匹配带有后续空格的下划线标记单词。
([\w\s]+)
则捕获一串由单词字符和空格组成的序列。
在实际应用中,这个正则表达式可以以如下方式在 Python 中实现:
import re
testString = '21 High Street _Earth Mighty Motor Mechanic'
pattern = r'_\w+\s([\w\s]+)'
match = re.search(pattern, testString)
if match:
words_after = match.group(1).split()
count = len(words_after)
print(f"下划线标记单词后的单词数量: {count}")
else:
print("未找到下划线标记的单词或其后无单词。")
---
### 从文本字符串中的下划线单词开始提取单词
如果你的目标是将下划线标记的单词包含在计数内,则可以稍微修改正则表达式:
```regex
(_\w+\s[\w\s]+)
此版本的工作方式为:
(_\w+\s[\w\s]+)
同时捕获下划线标记的单词以及其后面的所有单词。此处,_\w+
匹配下划线标记的单词,而 \s[\w\s]+
则匹配紧随其后的空格及单词。
对应的 Python 实现如下:
import re
testString = '21 High Street _Earth Mighty Motor Mechanic'
pattern = r'(_\w+\s[\w\s]+)'
match = re.search(pattern, testString)
if match:
words = match.group(1).split()
count = len(words)
print(f"包括下划线标记单词在内的总单词数量: {count}")
else:
print("未找到下划线标记的单词或其后无单词。")
注意:在这两个正则表达式之间做选择取决于你是否希望将下划线标记的单词计入词数统计之中。