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