当前位置: 首页 > 知识库问答 >
问题:

仅从正则表达式匹配中排除尾随空格字符

阮轶
2023-03-14

我试图从地址字符串中仅选择街道/单元号。

我的正则表达式模式是/^[\d\s,\-\/]*/

目前,我的正则表达式在任何字母字符之前匹配数字'/''-'空格字符。然而,我想排除拖尾空格字符

我的正则表达式匹配

61/2Sydney Road,Manly NSW(注意“2”后面的空格字符)

而不是

61/2新南威尔士州曼利市悉尼路

以下是一些示例地址字符串:

新南威尔士州曼利市悉尼路61/2号

新南威尔士州曼利悉尼路61-2号

61/2新南威尔士州曼利市悉尼路3号

共有1个答案

郑佐
2023-03-14

由于您的预期匹配不是空字符串(并且您当前的表达式-/^[\d\s,\-\/]*/-匹配空字符串,如果字符串开头没有[\d\s,\-\/]*模式匹配)并且在匹配的末尾总是有一个数字,您可以在您的模式末尾添加\d

/^[\d\s,\/-]*\d/
             ^^

请参阅正则表达式演示。

图案细节

  • ^-开始串锚
  • [\d\s,\/-]*-零个或多个数字、空格、/-(注意,当连字符位于字符类的最末端时,无需转义)
  • \d-一个数字
 类似资料:
  • 问题内容: 我需要在PHP正则表达式中匹配一个空格字符。任何人有任何想法吗? 我的意思是像“ gavin schulz”一样,两个单词之间的空格。我使用正则表达式来确保只允许使用字母,数字和空格。但是我不确定如何找到空间。这就是我现在所拥有的: 问题答案: 如果您正在寻找一个空格,那就是(一个空格)。 如果要查找一个或多个,则为( 两个 空格和一个星号)或(一个空格和一个加号)。 如果您要查找公共

  • 问题内容: 用于正则表达式的Java API 声明将匹配空格。因此,正则表达式应匹配两个空格。 这样做的目的是用单个空格替换两个连续空格的所有实例。但是,这实际上不起作用。 我对正则表达式或“空白”一词有严重的误解吗? 问题答案: 是的,你需要获取matcher.replaceAll()的结果:

  • 问题内容: 我正在寻找Java中与字符串中所有空白字符匹配的正则表达式。“ \ s”仅匹配一些,不匹配和类似的非ASCII空格。我正在寻找与Java字符串中可能出现的所有(常见)空白字符匹配的正则表达式。 [编辑] 需要说明的是:我不是指字符串序列“ ”我是指通常用“ ” 表示的单个Unicode字符U + 00A0 ,例如在HTML中,以及所有其他具有类似空格的unicode字符,例如“ NAR

  • 问题内容: 正则表达式可以匹配空格 或 字符串的开头吗? 我正在尝试用英镑符号替换缩写为GBP的货币。我可以匹配任何以GBP开头的东西,但我想更加保守一些,并在它周围寻找某些定界符。 我可以同时做后两个例子吗? 问题答案: 使用OR“ ”运算符:

  • 我试图找出这种情况下的正则表达式模式,以便序列化结果: 我想捕捉所有有限制的单词/单词组合: 只有单词,没有数字或字符,除了撇号 中间有空格的单词要包含在一起 到目前为止,我已经想出了: 但我有尾随空格。所以这和“七月”匹配,而不是“七月”。如何在保留单词之间的空格的同时防止尾随空格。

  • 问题内容: 这个正则表达式模式: 产生以下结果: 如何删除“ cID =“? 谢谢 问题答案: 您可以使用lookbehind(不在Javascript中): 或者,您可以使用分组并获取第一个分组: