Regex Lookarounds,防止前后

Regex Lookarounds, prevent ahead and behind

我有一个无法正常工作的正则表达式。我正在使用 PCRE(php) 来 运行 它。

正则表达式查找使用正斜杠分隔分子和分母的分数形式的英寸测量值。例如 1 3/8 英寸或 19 15/16"

它将在此处匹配 12 1/2":

A product description with 12 1/2" in it.

但如果测量是尺寸的一部分,我希望它不匹配,即前后有一个 x 并匹配此格式:19 3/4" x 19 5/8"

错误匹配的示例文本:

Product description with 19 3/4" x 19 5/8" in it.

这与 5/8" 匹配,但由于其中的 x 而应该忽略所有它。

我的正则表达式目前删除了 x 左侧的小节,但只忽略了右侧的整数。后视将从上面的示例中捕获 5/8"。我需要它忽略维度的两侧,并且只匹配它们自己的测量值。我使用负向前视和后视来匹配 x。

正则表达式:

/\s+(?<!x\s)\d*\s?\d+\/\d+"*\s*(in|")(?!\d*\s?x)\s*/i

我通过 regex101.com 的调试器 运行 它,但仍然无法弄清楚。感谢阅读。

与 PCRE/php 你可以使用 (*SKIP)(*FAIL)

\d*\s?\d+\/\d+"*\s*(in|")\sx\s\d*\s?\d+\/\d+"*\s*(in|")(*SKIP)(*FAIL)|\d*\s?\d+\/\d+"*\s*(in|")

Demo