Javascript 正则表达式负前瞻,不包括完整块
我正在尝试组合一个正则表达式,从下面的字符串中提取曲面,不包括前面带有日语字符的值Javascript 正则表达式负前瞻,不包括完整块,javascript,regex,regex-lookarounds,pcre,java,python,Javascript,Regex,Regex Lookarounds,Pcre,Java,Python,我正在尝试组合一个正则表达式,从下面的字符串中提取曲面,不包括前面带有日语字符的值 "110.94m2・129.24m2"; --> 110.94m2 and 129.24m2 "81.95m2(24.78坪)、うち2階車庫8.9m2" --> 81.95m2 "80.93m2(登記)" --> 80.93m2 "93.42m2・93.85m2(登記)" --> 93.42m2 and 93.85m2 "81.82m2(実測)" --> 81.82m2 "81.82
"110.94m2・129.24m2"; --> 110.94m2 and 129.24m2
"81.95m2(24.78坪)、うち2階車庫8.9m2" --> 81.95m2
"80.93m2(登記)" --> 80.93m2
"93.42m2・93.85m2(登記)" --> 93.42m2 and 93.85m2
"81.82m2(実測)" --> 81.82m2
"81.82m2(実測)、うち1階車庫7.82m2" --> 81.82m2
"90.11m2(実測)、うち1階車庫8.07m2" --> 90.11m2
到目前为止,我已经整理了下面的正则表达式,但不是在所有情况下都有效
(?<![\u4E00-\u9FAF\u3040-\u3096\u30A1-\u30FA\uFF66-\uFF9D\u31F0-\u31FF])([0-9\.]*m2)
您是否知道如何将以下消极展望视为排除
谢谢如果前面有数字或数字+句点,您需要取消任何匹配 在第一次查找之后或之前添加
(?)
(?<![\u4E00-\u9FAF\u3040-\u3096\u30A1-\u30FA\uFF66-\uFF9D\u31F0-\u31FF])(?<!\d)(?<!\d\.)(\d+(?:\.\d+)?m2)
请参见下面的用法示例
JS ES2018+演示:
const lst=[“110.94m2・129.24m2”、“81.95m2(24.78坪)、うち2.階車庫8.9平方米、80.93平方米(登記)", "93.42平方米・93.85平方米(登記)", "81.82平方米(実測)" , "81.82平方米(実測)、うち1階車庫7.82平方米,“90.11平方米(実測)、うち1階車庫8.07m2”];
常量正则表达式=/(?)?
console.log(s'=>',s.match(regex))
);
log(“另一种方法:”);
lst.forEach(s=>
console.log,“=>”,s.match(/(?您必须将\d.
添加到排除类:(?(或0-9\.
,如果您的方言迫使您这样做:P)Goul很高兴为您服务。请考虑接受答案。实际上,抱歉,它在我正在使用的在线测试仪上实现得很好,但不是在代码中。我正在使用JavaScript,似乎您的例子是Python。只是在您共享的站点中找到了代码生成器,工作得很好,谢谢!@ Goul我为所有浏览器添加了JS代码片段。
(?<![\u4E00-\u9FAF\u3040-\u3096\u30A1-\u30FA\uFF66-\uFF9D\u31F0-\u31FF])(?<!\d)(?<!\d\.)(\d+(?:\.\d+)?m2)
/([\u4E00-\u9FAF\u3040-\u3096\u30A1-\u30FA\uFF66-\uFF9D\u31F0-\u31FF])?(\d+(?:\.\d+)?m2)/g