簡體   English   中英

正則表達式匹配字符串中的整個可選單詞

[英]Regex match optional whole word in string

我正在使用Regex對看薪水的一組字符串執行一些驗證。 輸入字符串可能類似於以下之一:

£21220至£24565
£21220-£24565

我希望從中得到兩個數字。 最初,我正在測試中間何時有“ to”,但是我沒有找到匹配項。 這是我到目前為止所擁有的:

£(\\ d *)\\ s ^ to $ \\ s£(\\ d *)\\ z

理想情況下,我想使其正常運行,因此它可以是中間的“-”或“ to”。

使用備用組:

£(\d+)\s*(?:-|to)\s*£(\d+)$

僅當值位於字符串的末尾時才需要$ (您的模式包含\\z ,即字符串錨的末尾,這就是我在此處使用$原因。)

參見regex演示

在此處輸入圖片說明

圖案細節

  • £ -英鎊貨幣符號
  • (\\d+) -(捕獲)與一位或多位數字匹配的組1
  • \\s* -0+空格
  • (?:-|to) -一個-to單詞
  • \\s* -0+空格
  • £ -貨幣符號
  • (\\d+) -捕獲與一位或多位數字匹配的第2組
  • $ -字符串結尾(僅在需要時使用)。

您可以使用括號和| 定義一個捕獲組中具有多個可能匹配項(即(to|-) )的字符將顯式匹配“ to”或“-”:

£\d+\s*(to|-)\s*£\d+

在此處輸入圖片說明

模式分解

  • £ -英鎊符號。
  • \\d+ -一個或多個數字。
  • \\s* -可選數量的空格。
  • (to|-) -明確匹配“ to”或“-”的組。
  • \\s* -可選數量的空格。
  • £ -英鎊符號。
  • \\d+ -一個或多個數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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