我正在寻找一个匹配句子中第一个单词的正则表达式,不包括标点符号和空格。例如:“这是一个句子”中的“此”。和“第一次”在“首先,我想说”“你好!\”“
这不起作用:
"""([A-Z].*?(?=^[A-Za-z]))""".r
答案 0 :(得分:9)
答案 1 :(得分:2)
[a-z]+
这应该足够了,因为它会得到第一个a-z字符(假设不区分大小写)。
如果它不起作用,您可以尝试[a-z]+\b
,甚至^[a-z]\b
,但最后一个假设字符串以单词开头。
答案 2 :(得分:2)
您可以使用此正则表达式:^[^\s]+
或^[^ ]+
。
答案 3 :(得分:1)
您可以使用此正则表达式:^\s*([a-zA-Z0-9]+)
。
可以在捕获的组中找到第一个单词。
答案 4 :(得分:1)
这是一个老线程,但人们可能需要像我一样。 如果您的句子以一个或多个空格开头,则上述任何一个都无效。 我这样做是为了得到句子中的第一个(非空)单词:
(?<=^[\s"']*)(\w+)
说明:
为了查找字符串的开头,后面跟着零个或多个空格或标点字符(你可以在括号之间添加更多), (?<=^[\s"']*)
正向后观,但不要在匹配中包含它。登记/>
(\w+)
单词的实际匹配,将返回
句子中的以下单词不匹配,因为它们不满足后视。