正则表达式以匹配短语并创建捕获组
本文关键字:创建 短语 正则表达式 | 更新日期: 2023-09-27 18:32:20
我正在尝试创建一个正则表达式和C#模式,该模式将与以下短语匹配:
Photos of Washington DC taken by Jane Doe
其中捕获组生成"照片"华盛顿特区"和"简·多伊"。其他可能性是:
Videos of Austin taken by Ruby
: 视频, 奥斯汀, 红宝石
Photos of Red Bud Dogs taken by Willa Shepherd
:P霍托斯、红芽狗、威拉牧羊
这在正则表达式中甚至可能吗?
看来我被标记了...我有没有提到我不知道正则表达式?我试过:(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
,则可以将所有.*?
更改为 .*
。