有人能告诉我如何修改这个正则表达式以允许字符串中的句点吗?
string[] parts = Regex.Split(s, @"\b|[^\.#_a-zA-Z0-9()=><!%]");
如果我提供字符串:"HELLO ABC.123"
这个正则表达式正在返回{"HELLO", "ABC", ".", "123"}
我想回来{"HELLO", "ABC.123"}
请原谅我对正则表达式模式的无知。
编辑:我正在使用 C# 3.5
有人能告诉我如何修改这个正则表达式以允许字符串中的句点吗?
string[] parts = Regex.Split(s, @"\b|[^\.#_a-zA-Z0-9()=><!%]");
如果我提供字符串:"HELLO ABC.123"
这个正则表达式正在返回{"HELLO", "ABC", ".", "123"}
我想回来{"HELLO", "ABC.123"}
请原谅我对正则表达式模式的无知。
编辑:我正在使用 C# 3.5
\b
在 .期间的两边匹配ABC.123
。你可以改变它来避免这种情况。例如:
(?<![\w.])(?=[\w.])|(?<=[\w.])(?![\w.])
给出完整的引用表达式:
@"(?<![\w.])(?=[\w.])|(?<=[\w.])(?![\w.])|[^\w.#()=><!%]+"
您可能希望将#()=><!%
字符添加到所有字符类中。
只需从中删除\b
,\b|[^\.#_a-zA-Z0-9()=><!%]
然后使用:
string[] parts = Regex.Split(s, @"[^#_a-zA-Z0-9()=><!%]");