簡體   English   中英

如何在保留分隔符的同時將分隔符放在最前面,使用正則表達式拆分字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM