Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 以=符号结尾的单词之间的正则表达式匹配(LAN=和TYP=)_Regex_C# 4.0_Equals Operator - Fatal编程技术网

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]