有些单词有发音。不管怎样,我只想提取第一个词
A AH0
A'S EY1 Z
A(2) EY1
A. EY1
A.'S EY1 Z
A.S EY1 Z
A42128 EY1 F AO1 R T UW1 W AH1 N T UW1 EY1 T
AAA T R IH2 P AH0 L EY1
AABERG AA1 B ER0 G
AACHEN AA1 K AH0 N
AAKER AA1 K ER0
AALSETH AA1 L S EH0 TH
AAMODT AA1 M AH0 T
AANCOR AA1 N K AO2 R
AARDEMA AA0 R D EH1 M AH0
我试过regex= r"(\A[A-Z]+\b) | (\A[A-Z\'w]+\b)"
\A:只在字符串开头匹配。在
^{pr2}$\b:再次从http://docs.python.org/2/library/re.html开始,我认为这就像是一个边界b/w字母数字和非字母数字。在
What is happening is these are being collected:
('A', ' ')
('A', ' ', 'B', 'E', 'G', 'R') is actually AABERG
('A', ' ', 'C', 'E', 'H', 'N') AACHEN
('A', ' ', 'C', 'O', 'N', 'R')
('A', ' ', 'D', 'M', 'O', 'T')
('A', ' ', 'E', 'D', 'M', 'R')
('A', ' ', 'E', 'H', 'L', 'S', 'T')
('A', ' ', 'K', 'R', 'E') AAKER
我以元组列表的形式收集它们(一个单词作为元组中的单个字母)
这就是我要做的。问题是,我发现当重复字母A在这里重复不止一次时:“A”没有被包括进来,而是A
添加“”空空白。发生什么事了?我只想在这里提取第一个起始词,not A(2) or whitespaces or (,),[,] or any other symbolic character except for "'\'"
这就是为什么我想添加[A-Z'w]
如果有人能告诉我如何添加多个条件
regex= r"(\A[A-Z]+\b) | (\A[A-Z\'w]+\b) | ^\A[A-Z]+\b"
这能^\A[A-Z]+\b“在提取或^\A[A-Z]+\s”这更好吗?我很困惑。在
如果我也想要
;Semi-colon
A.S
.Dot
r'[^\SA-Z\\]+
能起作用吗?这'\\'
取自Inbar-Rose的下面的溶液。还在想那是怎么回事
如果你想要的只是文本每行的第一个单词,你甚至不需要正则表达式:
但是如果您坚持使用正则表达式(这也将确保您只获取字母(}):
^{pr2}$A-Z
)和{注意,这假设
text
是一个带换行符(新行)的字符串如果您实际上是从文件或其他源读取的,则迭代将不同。在我不是百分之百地了解你期望的输出结果,但这里有一个尝试:
结果是:
^{pr2}$如果你的问题变得更复杂,我们可以对这个答案做些小的改动。假设您需要不同的行分隔符,而不仅仅是
\n
。以下模式将不使用MULTILINE
,但将生成与之前相同的输出。在第一个集合中,您可以添加其他可以匹配的字符,例如;
。在你为什么需要一个正则表达式?在
相关问题 更多 >
编程相关推荐