示例
EL:123
가나123.456다라
123-ABC-456
123.456+678.890
AA03-BB1
$.AB12,00
我想从String中提取任何数字格式。
数字可能是| 100,000 | 20,000.00 | 12.52 | 10,800.082 |
我的模式是
@"\d[\d|,|.]+"
但是......它不适用于一个数字| 3 | 1 |。
我也试过
@"[\d|,|.]+"
它不应该抓住| ,| 。 |仅
我应该怎么做我的正则表达式模式?
答案 0 :(得分:2)
\d[\d|,|.]+
正则表达式找不到3
或1
,因为\d
需要1位数,+
[\d|,|.]+
也需要1|
至少一个炭更多。请注意,这也匹配*
,因为管道符号在字符类中被视为文字字符。要匹配0次或更多次出现,请使用 \d[\d,.]*
量词。
要匹配所有这些数字,您可以使用
\d+(?:[,.]\d+)*
或者,更好:
\d+
请参阅regex demo
<强>详情:
(?:[,.]\d+)*
- 一个或多个数字*
- 零或更多(由于[,.]
量词)出现的次数:
\d+
- 逗号或点int pushswap(int *la) {
int *lb;
int cnt;
cnt = 0;
while(la[cnt])
cnt++;
lb = malloc(sizeof(int)*cnt + 1)
}
- 一个或多个数字