[英]How to split a string using regex when the delimiter in the front while keeping the delimiter?
我嘗試拆分以下字符串:
"03/04/1987", "Joseph", "Sam", "F", "12/09/1976", "Saram", "Mary", "M","08/10/1969", "Shik", "Shaary", "F"
我需要使用正則表達式將此字符串拆分為多個字符串。 結果應如下所示:
"03/04/1987", "Joseph", "Sam", "F"
"12/09/1976", "Saram", "Mary", "M"
"08/10/1969", "Shik", "Shaary", "F"
謝謝您的幫助
我找到了答案(?= \\ d {2} / \\ d {2} / \\ d {4})。 謝謝。
這應該為您工作:
String[] parts = str.split("(?<=\"[FM]\",) ");
它使用正向后方斷言(但不捕獲)空格前面的字符是"F",
或"M",
如果您指出了所使用的正則表達式風格,則提供一個更完整的解決方案將更加容易。 但是,您可以使用逗號分隔,后接zeri或更多空格,並用正向超前日期字符串進行限定。 使用前瞻性確保引用日期字符串本身不會被刪除。
,\s*(?="\d{2}/\d{2}/\d{4}")
在.NET中,您可以使用:
splitArray = Regex.Split(subjectString, @",\s*(?=""\d{2}/\d{2}/\d{4}"")", RegexOptions.Singleline);
使用此模式進行分割,\\s*(?=(([^"]*"){8})*$)
或替換為\\n
Demo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.