我试图用正则表达式匹配字符串中的第一个单词。获取正则表达式字符串的第一个字
我知道如何匹配第一个单词,如果第一个字符链是一个单词,但问题是当我的字符串开始;例如。
^([\w\-]+)
工程与
This is my sentence.
但不与
; This is my sentence
我的目标是相匹配的第一个字
This
独立的字符(s)为前。
谢谢。
我试图用正则表达式匹配字符串中的第一个单词。获取正则表达式字符串的第一个字
我知道如何匹配第一个单词,如果第一个字符链是一个单词,但问题是当我的字符串开始;例如。
^([\w\-]+)
工程与
This is my sentence.
但不与
; This is my sentence
我的目标是相匹配的第一个字
This
独立的字符(s)为前。
谢谢。
你应该使用这样的:
\b([\w-]+)\b
锚^
是强迫你只能在乞讨词相匹配的问题。这应该由\b
(字边界)替代。
尝试这种模式:
^\W*([\w-]+)
它在字符串(^
)的开始锚定,并允许主要的非单词字符的第一个字前的任意量(\W*
)中匹配了模式的第一组(([\w-]+)
)。
如果你的语言支持回顾后
(?<=^\W*?)([\w\-]+)
只会你需要什么,而不使用组
玩否则匹配,马吕斯舒尔茨的回答将做的工作!
尝试此链接http://www.regular-expressions.info/wordboundaries.html有一种叫做词边界正则表达式
将匹配给定文本的所有单词。 –
这将返回**只有第一个单词**在Javascript的'string#match' – anubhava
...,它不会在C#中使用'Regex.Matches'。看看我要去哪里?在这个问题中没有指定语言,所以我指出了模式可能存在的缺陷。 –