【问题标题】:Regex - first letter capital and followed by lowercase alphanumeric [closed]正则表达式 - 第一个大写字母,后跟小写字母数字 [关闭]
【发布时间】:2021-03-08 03:51:03
【问题描述】:

我想写一个正则表达式,它接受一个输入字符串,并返回一个包含所有单词的列表 首字母大写后跟任意数量的小写字母数字字符的字符串。

我使用了以下表达式[A-Z][a-z0-9_]+,但它似乎不起作用。

【问题讨论】:

  • 您能否将不适合您的代码与包含应匹配单词的字符串共享?

标签: python python-3.x regex


【解决方案1】:

你有什么工作正常,还有其他问题

>>> import re
>>> re.findall(r"[A-Z][a-z0-9_]+", "Foo Bar baz")
['Foo', 'Bar']

如果您要排除中间有大写字母或类似的值,请考虑改为.split()ing 您的单词并查找以大写字母开头的单词

>>> [x for x in "Some long string of Words".split() if re.match("^[A-Z]", x)]
['Some', 'Words']

如果您想要一个完整的自然语言解析器,正则表达式是不够的,还需要投入更多的工作!

【讨论】:

  • 因为 [A-Z] 和 [a-z] 仅匹配基本拉丁字母字符,对于非英语,最好分别使用 Unicode 类别 \p{Lu} 和 \p{Ll}字母(Unicode 类别支持需要“regex”模块而不是“re”。
最近更新 更多