繁体   English   中英

正则表达式匹配句子中的第一个单词

[英]Regex to match first word in sentence

我正在寻找一个正则表达式,它匹配句子中的第一个单词,但不包括标点符号和空格。 例如:“这是一个句子”中的“这”。 和“首先,我想说的是“第一”!

这不起作用:

"""([A-Z].*?(?=^[A-Za-z]))""".r
(?:^|(?:[.!?]\s))(\w+)

将匹配每个句子中的第一个单词。

http://rubular.com/r/rJtPbvUEwx

[a-z]+

这应该足够,因为它将获得第一个az字符(假设不区分大小写)。

万一它不起作用,您可以尝试[az]+\\b ,甚至^[az]\\b ,但是最后一个假设字符串以单词开头。

您可以使用以下正则表达式: ^[^\\s]+^[^ ]+

这是一个旧线程,但是人们可能像我一样需要它。 如果您的句子以一个或多个空格开头,则以上方法均无效。 我这样做是为了获得句子中的第一个(非空)单词:

(?<=^[\s"']*)(\w+)

说明:

(?<=^[\\s"']*)正向后看,以查找字符串的开头,后跟零个或多个空格或标点字符(可以在方括号之间添加更多字符),但不要包括它在比赛中。
(\\w+)单词的实际匹配,将返回

句子中的以下单词不匹配,因为它们不符合后面的条件。

您可以使用此正则表达式: ^\\s*([a-zA-Z0-9]+)

第一个单词可以在捕获的组中找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM