regex - Noob regex poser(匹配可能包含并且必须有)

标签 regex

对于正则表达式大师来说,可能真的很简单:) 我是正则表达式的菜鸟,刚刚学习了一些 PHP,但想学习(一旦这个项目完成,我将全力以赴并破解正则表达式)。
我想了解如何编写可能包含一些数据但必须包含其他数据的正则表达式。

我的例子是,匹配可以以数字开头但不必以数字​​开头,但是如果确实如此,我需要数字和以下 2 个单词。如果它不以数字开头,只需前 2 个单词。数据将位于字符串的开头。

以下将匹配:

  • 123 Fore Street, Fiveways(123 Fore Street 返回(无逗号))
  • 我们的房子村(我们的房子回来了)
  • 7 八九(7 八九归来)

  • 谢谢

    最佳答案

    这样的事情应该工作:
    ^((?:\d+\s)?\w+(?:\s\w+)?)
    你可以在类似 http://rubular.com/ 的地方测试它在编码之前,它通常更容易。

    这是什么意思:

    ^ -> 行首
    (?:\d+\s)? -> 一个非捕获组,(用 ?: 标记),由几个数字和一个空格组成,因为我们后面跟着 ? ,它是可选的。
    \w+(?:\s\w+)? -> 几个字母数字字符(查找\w 的含义),然后是可选的空格和另一个“单词”,再次位于非捕获组中。

    整个事情都封装在一个捕获组中,因此组 1 将包含您的匹配项。

    关于regex - Noob regex poser(匹配可能包含并且必须有),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048307/

    相关文章:

    javascript - 正则表达式没有进行所有预期的替换

    javascript - 在javascript中匹配css规则

    javascript - 将 php 正则表达式转换为 javascript

    regex - puppet 中用于检查字符串是否包含另一个字符串的函数

    python - 根据第一个字符的出现分隔字符串列

    javascript - 优化正则表达式搜索电话#搜索结果(JS)?

    ruby - 如何在 Ruby 中使用正则表达式或其他方式检测这个不可打印的字符?

    regex - Perl正则表达式匹配较长句子中的可选短语

    java - 如何使正则表达式匹配测量单位?

    javascript - 将单词(字符串)数组转换为正则表达式并使用它来匹配字符串