我有一个像这样的字符串 "87987987/78979878978"
两个数字的长度没有任何限制,它们之间可以是任何东西,在这个例子中我展示了一个 "/"
但它可以是字母、元音甚至是数字,但它们之间有一个空格,这是一个分隔符。
我如何创建一个正则表达式来解决这个问题?
另外,正则表达式也应该适用于“789787987897”这种没有分隔符和第二个数字的情况。
我尝试了类似这样的操作 "([\a-z]*?) (.) ([\a-z]*?) "
但没有成功。
最佳答案
这个表达式应该有效:
^(\d+)\D*?(\d*)$
思路是在字符串^
开头用\d+
匹配尽可能多的数字,然后用匹配尽可能少的非数字>\D*?
,最后匹配字符串$
末尾的零个或多个数字。
请注意 \d+
和 \d*
周围的括号:它们正在设置 regex 捕获组。您可以使用这些组从您的 C# 代码中获取正则表达式匹配的数字。
注意:如果您想在“中间的空格”中使用数字,请使用 .*
代替 \D*
.
关于c# - 关于regex的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46406566/