簡短的問題,但不能使其工作。我有一個字符串:正則表達式提取2個不同字符和字符串之間的字符串
COMPANY NAME - username (Name Surname).
什麼樣的正則表達式的會給我username
(無空格)從-
和(
之間的這樣的例子?
這是ASP.NET C#,如果它有任何區別。提前致謝 !
編輯: 公司名稱是一個可能的空格字符串。用戶名不含空格。字符-
和(
只出現在這2個地方。自從我舉出這樣的例子以來,我認爲這是100%明顯的。
簡短的問題,但不能使其工作。我有一個字符串:正則表達式提取2個不同字符和字符串之間的字符串
COMPANY NAME - username (Name Surname).
什麼樣的正則表達式的會給我username
(無空格)從-
和(
之間的這樣的例子?
這是ASP.NET C#,如果它有任何區別。提前致謝 !
編輯: 公司名稱是一個可能的空格字符串。用戶名不含空格。字符-
和(
只出現在這2個地方。自從我舉出這樣的例子以來,我認爲這是100%明顯的。
var match = Regex.Match(
"COMPANY - ltd (NAME) - username (Name Surname)",
@"^.* - (.*?) \(.*\)$"
);
var username = match.Groups[1].Value;
如果您的線路有.
,則正則表達式的結束是@"^.* - (.*?) \(.*\)\.$"
通過使用.*?
(懶惰的量化r)這個正則表達式對於我用來作爲測試的那個奇怪的「東西」很有抵抗力。
Link有測試。傳遞每一行以查看捕獲組。
string resultString = null;
try {
resultString = Regex.Match(subjectString, @"-\s+(\S*)\s*\(").Groups[1].Value;
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
輸出:username
很容易使用grep來測試正則表達式:
kent$ echo "COMPANY NAME - username (Name Surname)."|grep -Po '(?<=-).*(?= \()'
username
你可以看下面的youtube正則表達式視頻,我相信上面的問題你可以自己回答。
'username'是否可以包含空格或括號? –
公司名稱是否可以包含連字符或括號? –
是否保證該線路將以完全停止狀態結束? –