我有一个这样的字符串:
地址:Big Avenue 9 - National(FOREST(THE))。
我需要用正则表达式解析它以检索这样的数据:
我正在使用这个正则表达式:
/Adress\:\s(.*(?!\.*\)))\((.*[\(.*\)]?)\)/
但是他们给出了这个结果:
我正在搜索很多信息,但我不知道该怎么做。 非常感谢你的帮助。
答案 0 :(得分:1)
您可以使用
'~Adress:\s*(.*?)\s*\((.*)\)~'
请参阅PHP regex demo,结果
<强>详情
Adress:
- 文字子字符串\s*
- 0+ whitespaces (.*?)
- 第1组:除了换行符之外的任何0 +字符,尽可能少\s*
- 0+ whitespaces \(
- (
字符(.*)
- 第2组:除了换行符之外的任何0 +字符,尽可能很多 \)
- )
字符查看PHP demo:
$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 :(得分:0)
您可以按(
匹配第一个([^(]*)
之前的任何内容,然后选择(
... )
与(\(.*\))?
Adress\:\s([^(]*)(\(.*\))?