繁体   English   中英

我有正则表达式将字符串拆分为单词,数字和标点符号列表。 如何制作列表中的“az”和“0-9”单个元素?

[英]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编辑。

见演示。

https://regex101.com/r/iS6jF6/3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM