您好我正在尝试创建一个匹配两个单词之间所有单词的正则表达式。 到目前为止我的工作是:
public static String GetTextBetween(String source, String leftWord, String rightWord)
{
return
Regex.Match(source, String.Format(@"{0}\b\s(?<words>[\w\s]+)\s{1}", leftWord, rightWord),
RegexOptions.IgnoreCase).Groups["words"].Value;
}
文本文档包含以下内容:
TYP = 123456789_AD1
DES = xyzer
TXT = bXper xyer
TXT = C
Lorem ipsum dolor坐下来,这是一种不可或缺的精神。 Aenean commodo ligula eget dolor。 Aenean massa。 Cum sociis natoque penatibus et magnis dis parturient montes
TXT = dsome text
TXT = e some text
TXT = I
如你所见,有时文字就在文字后面(leftWord和rightWord) 我正在努力解决这个问题。
答案 0 :(得分:0)
问题在于&#39; \ b&#39;这是一个单词边界。这只会在字符串的最后一个字符后匹配,如果该字符串中的最后一个字符是&#39;单词&#39;字符。由于&#39; =&#39;不是单词字符,因此匹配失败。
@"{0}\s(?<words>[\w\s]+)\s{2}"
删除\ b应该可以正常工作,或者如果由于某种原因需要保留它,请使用[\ b \ s]。