![](/img/trans.png)
[英]How to get each number between words in string as separate value to replace
[英]How can I get number between specific words in string?
我想使用正則表達式從xml中提取電話號碼。
....
<address>phone number</address>
....
ex)<address>1234567890</address>
但是有時該電話號碼會帶有一些不必要的字符作為前綴。
ex) <address>tel+1234567890</address>
我只需要電話號碼。
我使用了<address>.+?(\\d+)</address>
但這不能正常工作。
有前綴字時,無論大小寫如何如何總能得到數字?
您可以使用linq:
string number = "tel+12345678";
string filtered = new String(number.Where(x => Char.IsDigit(x)).ToArray());
基本上,您的正則表達式不起作用是因為您未制作.+?
可選的。
您可以這樣解決.*?
或執行以下操作:
正則表達式:
@"<address>[^>\d]*(\d+)[^>]*</address>"
格式:
<address> [^>\d]*
( \d+ ) # (1)
[^>]* </address>
輸出:
** Grp 0 - ( pos 51 , len 29 )
<address>1234567890</address>
** Grp 1 - ( pos 60 , len 10 )
1234567890
---------------
** Grp 0 - ( pos 169 , len 33 )
<address>tel+1234567890</address>
** Grp 1 - ( pos 182 , len 10 )
1234567890
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.