首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用括号第一次出现Regex

用括号第一次出现Regex
EN

Stack Overflow用户
提问于 2018-02-14 08:50:06
回答 2查看 39关注 0票数 1

我有一根这样的绳子:

地址:大大道9号-国家(森林())。

我需要用regex解析它来检索如下数据:

  • 大大道9号-国家
  • 森林(森林)

我在用这个正则表达式:

代码语言:javascript
复制
/Adress\:\s(.*(?!\.*\)))\((.*[\(.*\)]?)\)/

但他们给出了这个结果:

  • 大大道9号-国家(森林)
  • (A)

我搜索了很多信息,但我不知道该怎么做。非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-14 09:08:21

你可以用

代码语言:javascript
复制
'~Adress:\s*(.*?)\s*\((.*)\)~'

PHP regex演示,结果

详细信息

  • Adress: -一个文字子字符串
  • \s* - 0+白空间
  • (.*?) -第1组:除行中断字符以外的任何0+字符,尽可能少
  • \s* - 0+白空间
  • \( -a ( char
  • (.*) -第2组:除行中断字符以外的任何0+字符,尽可能多
  • \) -a ) char

PHP演示

代码语言:javascript
复制
$re = '/Adress:\s*(.*?)\s*\((.*)\)/';
$str = 'Adress: Big Avenue 9 - National (FOREST (THE)).';
if (preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0)) {
    print_r($matches);
}
票数 1
EN

Stack Overflow用户

发布于 2018-02-14 08:55:38

您可以通过([^(]*)将任何内容匹配到第一个([^(]*),然后在可选的( . )(\(.*\))?之间进行匹配。

代码语言:javascript
复制
Adress\:\s([^(]*)(\(.*\))?

在这里玩:https://regexr.com/3kp5i

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48783006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档