使用.NET Regex查找括号中的字符

use*_*055 1 c# regex

如何使用Regex98从表达式中获取?$RetailTransaction.IsContainsTender(98)

Joe*_*oey 9

像往常一样,在这种情况下,你应该首先问问自己数据的样子(不止一个例子)以及对它的期望.

最简单的路线可能只是正则表达式

\d+
Run Code Online (Sandbox Code Playgroud)

但如果行中的数字多于您想要的数字,则会失败.

您可以考虑括号:

(?<=\()\d+(?=\))
Run Code Online (Sandbox Code Playgroud)

这使用了lookbehind和lookahead断言,因此数字是完全匹配(并且不会隐藏在捕获组中).

您还可以使用其他上下文,例如方法名称:

(?<=IsContainsTender\()\d+(?=\))
Run Code Online (Sandbox Code Playgroud)

所有这些都可以使正则表达式对可能意外匹配的不需要的数据更加健壮,但这只是你可以做出的权衡,因为由于某些原因我只有一个例子可以在这里使用.如果你只需要匹配a 98,那么它98就是一个有效的正则表达式,并通过上面的例子做你想要的.因此,我恳请您应该更加想想要匹配的案例以及可能会给您过度简单化的方法带来麻烦的案例.