" john smith (idjs) <[email protected]> "
我如何將前面的內容分成3個部分?
我如何將前面的內容分成3個部分?
1: john smith
2: (idjs)
3: <[email protected]>
我遇到了麻煩,只是想獲得任何一個部分:
嘗試這樣做:
試著這樣做:
var fullname = Regex.Match(item, $"(?=^).*(?=( )").Value;
uj5u.com熱心網友回復:
你可以使用命名的匹配組來實作:
var item = " john smith (idjs) <[email protected]> ";
String[] patternArr =
{
" (?:s*)",
"(?<fullname>[a-zA-Zs]*?[a-zA-Z])", //捕獲全名部分。
"(?:s*)"。
"(?<idjs>([a-zA-Z]*))", //抓取idjs部分。
"(?:.*)"。
"(?<email>(?:<).*@.*(?:>))" //捕獲電子郵件部分。
};
var pattern = String.Join(""/span>, patternArr);
var m = Regex.Match(item, pattern)。
if (m.Success)
{
Console.WriteLine("fullname: {0}", m.Groups["fullname"]) 。
Console.WriteLine("idjs: {0}", m.Group["idjs"])。
Console.WriteLine("email: {0}", m.Groups["email"])。)
}
輸出:
fullname: john smith
idjs: (idjs)
email: <[email protected]>
演示。https://dotnetfiddle.net/y6U5j4
uj5u.com熱心網友回復:
string pattern =
@"s*" //零個或更多的空白字符。
@"(.*)" //任何一個或多個字符的集合。
@"s " //一個或多個空白字符。
@"((.*))" //零個或更多的字符在圓括號內。
@"s" //a single whitespace。
@"(<.*>)" //大括號內有零個或多個字符。
;
注意,Regex.Match().Value不會給你的部分 - 只有整個字串,如果它匹配。你想要的是Regex.Match().Groups,它將回傳一個GroupCollection,你可以通過迭代來獲得這些部分。
var groups = Regex.Match(item, pattern).Groups。
foreach(var group in groups)
Console.WriteLine(group)。
uj5u.com熱心網友回復:
雖然這不是通過使用Regex,但我將使用split來實作:
var input=" john smith (idjs) <[email protected]> ";
var first=input.Split(' (');
var second=first[1].Split(') ')。
var name=first[0].Trim()。
var mid=second[0].Trim()。
var email=second[1].Trim()。
/*
結果。
約翰-史密斯
idjs
<[email protected]>。
*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323800.html
標籤:
上一篇:洗掉正斜杠前的反斜杠
下一篇:在同一行接收數值
