Regex 以=符号结尾的单词之间的正则表达式匹配(LAN=和TYP=)
你好,我正在尝试创建一个正则表达式,它将匹配两个单词之间的所有单词。 我目前的工作是:Regex 以=符号结尾的单词之间的正则表达式匹配(LAN=和TYP=),regex,c#-4.0,equals-operator,Regex,C# 4.0,Equals Operator,你好,我正在尝试创建一个正则表达式,它将匹配两个单词之间的所有单词。 我目前的工作是: 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, ri
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;
}
公共静态字符串GetTextBetween(字符串源、字符串leftWord、字符串rightWord)
{
回来
Regex.Match(源,String.Format(@“{0}\b\s(?[\w\s]+)\s{1}”、leftWord、righword),
RegexOptions.IgnoreCase)。组[“单词”]。值;
}
文本文档包含以下内容:
典型值=123456789_AD1
DES=xyzer
TXT=bXper-xyer
TXT=c
Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。产难者自然社会
TXT=dsome文本
TXT=e一些文本
TXT=i
如您所见,有时文本紧跟在单词后面(leftWord和rightWord)
我正在努力解决这个问题。问题在于'\b',它是一个词的边界。如果字符串中的最后一个字符是“word”字符,则仅在该字符串的最后一个字符后匹配。由于“=”不是单词字符,因此匹配失败
@"{0}\s(?<words>[\w\s]+)\s{2}"
@“{0}\s(?[\w\s]+)\s{2}”
删除\b应该可以正常工作,或者如果出于某种原因需要保留它,请使用[\b\s]