2014-02-11 451 views
3

我试图用正则表达式匹配字符串中的第一个单词。获取正则表达式字符串的第一个字

我知道如何匹配第一个单词,如果第一个字符链是一个单词,但问题是当我的字符串开始;例如。

^([\w\-]+) 

工程与

This is my sentence. 

但不与

; This is my sentence 

我的目标是相匹配的第一个字

This 

独立的字符(s)为前。

谢谢。

回答

2

你应该使用这样的:

\b([\w-]+)\b 

^是强迫你只能在乞讨词相匹配的问题。这应该由\b(字边界)替代。

+0

将匹配给定文本的所有单词。 –

+0

这将返回**只有第一个单词**在Javascript的'string#match' – anubhava

+0

...,它不会在C#中使用'Regex.Matches'。看看我要去哪里?在这个问题中没有指定语言,所以我指出了模式可能存在的缺陷。 –

4

尝试这种模式:

^\W*([\w-]+) 

它在字符串(^)的开始锚定,并允许主要的非单词字符的第一个字前的任意量(\W*)中匹配了模式的第一组(([\w-]+))。

3

如果你的语言支持回顾后

(?<=^\W*?)([\w\-]+) 

只会你需要什么,而不使用组

玩否则匹配,马吕斯舒尔茨的回答将做的工作!

相关问题