地址模式中的正则表达式

\(Uni(t|ts)|Sho(p|ps)|Offic(e|es)|Fla(t|ts)?|Rm|Roo(m|ms)|Suit(e|es)).\w+(-|&)?\w*\gi

我正在使用上面的模式来查找匹配项,但有 2 种情况正则表达式未找到,如何在编辑正则表达式时找到“Rm.2301”和“Flat/Room 5”?

在线编辑器中的用例 https://regex101.com/r/Sc1Feg/4

unmatched cases

Rm. 2301, Blk. B3-B4, 

Flat/Room 5, 9/F, 


matched cases

rm A, 17/F., 

Flat F, 9/F, 

Flat G1, 10/F, 

Flat C, 36/F, Block 1, 

Flat 1107&1108, 11/F, 

Flat 2301, 23/F, F

Unit 3, 2/F, L

Unit 1603 16/F 

Offices D-F, 23/F, 

Office D-F, 23/F, 

Unit 1901, 19/F, 

Units A, 6/F, 

Shop 14, G/F, 

Rooms 2202, 

Suite 702, 7/F.,


守着星空守着你
浏览 121回答 4
4回答

吃鸡游戏

关于图案该部分Rm. 2301, Blk. B3-B4,不匹配,因为您尝试的模式的最后部分有.\w+模式Rm在交替中匹配,.模式中的 也可以匹配字符串中的点,但后面有一个空格Rm. ,后面的 不会匹配\w。在这部分中,Flat/Room 5由于相同的机制,空格和 5 不匹配。Flat在交替中匹配,.模式中的 匹配/和\w+匹配Room,但是(-|&)?\w*模式中的这部分与其后面的空格不匹配。由于所有示例字符串都匹配到逗号之前,因此一种选择是匹配除逗号之外的所有后续字符串。这是一个更广泛的匹配,但它可能会阻止创建更复杂的模式来解释所有变化。\b(?:Units?|Shops?|Offices?|Flats?|Rm|Rooms?|Suites?)[^,\r\n]+正则表达式演示请注意,您可以将这样的部分更改(p|ps)为匹配 ap后跟一个可选s并删除该组。

元芳怎么了

...更通用但仍然足够具体的东西怎么样,例如... /^[\w./]+\s+[\w&-]+/..?毕竟有通用模式,两个空格分隔的字符序列,可以按如下方式匹配......^[\w./]+\s+...从一开始就匹配至少一个单词、点或斜杠字符的任何内容,直到到达包含空格(序列) ...[\w&-]+...然后匹配对任何至少是单词、与号或减号字符的内容进行连续匹配。console.log(`Rm. 2301, Blk. B3-B4, Flat/Room 5, 9/F, rm A, 17/F., Flat F, 9/F, Flat G1, 10/F, Flat C, 36/F, Block 1, Flat 1107&1108, 11/F, Flat 2301, 23/F, FUnit 3, 2/F, LUnit 1603 16/F Offices D-F, 23/F, Office D-F, 23/F, Unit 1901, 19/F, Units A, 6/F, Shop 14, G/F, Rooms 2202, Suite 702, 7/F.,`.match(/^[\w./]+\s+[\w&-]+/gm));.as-console-wrapper { min-height: 100%!important; top: 0; }

慕妹3146593

由于Rm. 2301包含句点和空格,因此正则表达式的这部分将不匹配:.\w要修复此问题,您可以使用加号运算符 ( +),使其匹配句点和空格。为了防止将捕获扩展到行尾,您还可以使用惰性运算符 ( ?)。.+?\w所以最终的正则表达式将是:/(Uni(t|ts)|Sho(p|ps)|Offic(e|es)|Fla(t|ts)?|Rm|Roo(m|ms)|Suit(e|es)).+?\w+(-|&)?\w*/

繁星点点滴滴

也许更具可读性的正则表达式是这样的:/(Flat\/Room|Flat|Suite|Rooms|Rm\.|Rm|Shop|Units|Unit|Offices|Office) ([\w&-]+)/gmi它捕获第 1 组内的房间类型以及第 2 组中它旁边的数字(以及逗号之前)。解释:(A|B|C):将在组 1 中捕获A,B或者C。([\w&-]+):将在组 2 中捕获字母数字 或&或-,任意次数。演示: https: //regex101.com/r/Sc1Feg/5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript