正则表达式来匹配部分串和句子
问题描述:
的片段假设我希望以匹配正则表达式如下:正则表达式来匹配部分串和句子
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
需要出现在字符串中 - 这些术语必须是独立的,即不是作为更长的部分像
molecules
。
如何使用单个正则表达式来匹配所有4种情况?
到目前为止我曾尝试这样的:
~'mol|g|Grams/g
,但它也符合诸如:
32 mol
gravity of molecule
答
此正则表达式既需要 “摩尔”/ “摩尔” 和 “g”/ “克”(允许的“g”到紧跟一个数字):
/^(?=.*\bmol(es)?\b)(?=.*[^a-z](g|grams?)\b).*/i
采用\b
- 字界ary - 确保“分子”和“好”不会被视为匹配等。
“i”标志使其不区分大小写。
请参阅demo
你试过了什么? – 2014-10-31 05:50:59
'/^\ d + \。\ s +。* $ /' – DavidO 2014-10-31 05:52:43
简单:'。*'... – alfasin 2014-10-31 05:59:44