簡體   English   中英

RegExp:與可選的包裝文本匹配

[英]RegExp: match with optional wrapping text

考慮字符串hello/pls/friend 我可以使用RegExp /\\w+/g來捕獲這些單詞,從而產生['hello', 'pls', 'friend']

現在考慮字符串(hello)/pls/friend 我現在不僅對單詞感興趣,而且對每個單詞是否都包含在括號內也感興趣。

我提出的一個解決方案是“復制”我的原始表達式,添加帶有(轉義)括號的第​​二個版本。 說... /(\\(\\w+\\))|(\\w+)/g

我寧願不復制原始表達式,所以我想知道是否有更簡潔的方法來解決這個問題。

目標/要求是:

  1. 這與String.prototype.replace()一起使用,並指定了一個回調,因此如果它對您有用,請記住這一點。

  2. 經過一些光操作后,應該可以生成如下對象:

     [ { word: "hello", wrapped: true }, { word: "pls", wrapped: false }, { word: "friend", wrapped: false } ] 
  3. 不匹配的括號,即(hello/pls ,不應匹配)。

  4. 這些是JavaScript RegExps,因此請記住這些限制

  5. 它不需要處理多個包裝的單詞,例如(hello/pls)/friend

感謝您花時間閱讀本文,RegExp專業人士!

\(([^/)]*)\)|[^/)(]*

你可以使用這個。所有匹配都將在wrapped=False 。所有捕獲的組都應該在wrapped = True

見演示。

https://regex101.com/r/uF4oY4/85

暫無
暫無

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

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