Regex 正则表达式匹配部分字符串和句子片段

Regex 正则表达式匹配部分字符串和句子片段,regex,Regex,假设我希望将以下内容与正则表达式匹配: Convert 2g of NaOH into moles. Convert 3.2 grams of Chlorine into mol. How many moles are in 67 g of Sodium Chloride? 434 mol of Sodium to Grams. 这些要求是: 术语g/grams和mol/moles都需要出现在字符串中 这些术语必须是独立的,即不能作为较长单词的一部分,如分子 如何使用一个正则表达式来匹配

假设我希望将以下内容与正则表达式匹配:

Convert 2g of NaOH into moles.
Convert 3.2 grams of Chlorine into mol.
How many moles are in 67 g of Sodium Chloride?
434 mol of Sodium to Grams. 
这些要求是:

  • 术语
    g
    /
    grams
    mol
    /
    moles
    都需要出现在字符串中
  • 这些术语必须是独立的,即不能作为较长单词的一部分,如
    分子
如何使用一个正则表达式来匹配所有4种情况?

到目前为止,我已经尝试过:

~'mol|g|Grams/g
但它也与以下术语相匹配:

32 mol
gravity of molecule 
此正则表达式需要“摩尔”/“摩尔”和“克”/“克”(允许“克”紧跟在数字后面):

使用
\b
-单词边界-确保“分子”和“良好”不算作匹配项等

“i”标志使其不区分大小写

/^(?=.*\bmol(es)?\b)(?=.*[^a-z](g|grams?)\b).*/i