我正在尝试创建一个RegEx和C#模式,以匹配如下短语:
Photos of Washington DC taken by Jane Doe
捕获组的位置是“照片”,“华盛顿特区”和“简·多伊”。其他可能性是:
Videos of Austin taken by Ruby
:视频,奥斯丁,红宝石
Photos of Red Bud Dogs taken by Willa Shepherd
:照片,红芽狗,威拉牧羊犬
RegEx甚至有可能吗?
看来我被举报了...我是否提到我不了解RegEx?我试过:(Photo of).*?((?:[a-z][a-z]+))(Taken by)((?:[a-z][a-z]+))
但是失败了。
.*
匹配任何字符串(换行符除外)。通过添加?
到它(.*?
),你可以告诉正则表达式引擎来匹配尽可能少的字符可能,这可能是正确的做法在这里,所以的第一个实例of
,并taken by
会作为您预期的子匹配的分隔符:
matchResults = Regex.Match(subjectString, "^(.*?) of (.*?) taken by (.*)");
// matchResults.Groups[1].Value contains "Photos" etc.
如果你不希望不止一个of
,并taken by
在你的输入,你可以改变一切.*?
成.*
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句