簡體   English   中英

如何獲取字符串中特定單詞之間的數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM