我正在尝试解析使用英制简写符号的长度数量('
表示英尺,"
表示英寸),但我有点进退两难.使用这个正则表达式:
/\d+(\.\d+)?(?:[ -]\d+\/\d+)?(?:\')/g
我可以匹配以下字符串(每个字符串在一个较大的字符串中单独传递):
5'6"
(匹配5'
)6'
3 1/2'
12.5'
但是,我遇到过使用 ''
代替 "
的字符串。我尝试添加 [^\']
在最后,但这将匹配第一个示例中的 5'6
,如果我输入 [^\'\d]
,它将与第一个示例不匹配完全没有。有什么帮助吗?
最佳答案
为了匹配 5'6''
中的 5'
,您只需使用否定前瞻:
/\d+(?:\.\d+)?(?:[ -]\d+\/\d+)?'(?!')/g
^^^^^
如果末尾的 '
后跟另一个撇号,则 (?!')
将使整个匹配失败。
关于匹配 5'2"、 6', and 2' - 4", but not 3' '(两个撇号)的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35302725/