[英]I have regex to split string to words, numbers and punctuation marks list. How to make “a-z” and “0-9” single elements of list?
它看起來如此:
string[] lines = Regex.Split(line, @"\s+|(?!^)(?=\p{P})|(?<=\p{P})(?!$)");
它將"ASds22d. asd ,156"
拆分為"ASds22d" + "." + "asd" + "," + "156"
"ASds22d" + "." + "asd" + "," + "156"
。
這是“az”,“0-9”等字符串或“ac”和“4-5”等變體的問題。 我的正則表達式將"az 1-9"
分為"az 1-9"
"a" + "-" + "z" + "1" + "-" + "9"
但我只需要"az" + "1-9"
。
有人能解決這個正則表達式嗎?
\s+|(?!^|-)(?=\p{P})|(?<=\p{P})(?<!-)(?!$)
您可以嘗試這樣的事情。這不會分裂-
。如果您有任何需要拆分的示例-
需要它可以再次進行OR
編輯。
見演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.