Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过搜索数字/字符通过正则表达式拆分字符串_Php_Regex - Fatal编程技术网

Php 通过搜索数字/字符通过正则表达式拆分字符串

Php 通过搜索数字/字符通过正则表达式拆分字符串,php,regex,Php,Regex,我怎样才能分开这根线 Any-word 3, with comma 48, 50 -- 51, 527 …放入任何带逗号的单词3和48,50--51527?第二部分总是一个数字;可选有多个数字(如本例中所示),可以用“,”和/或“--”分隔。第二部分也没有任何单词或字母(这与第一部分中的数字3不同) 我需要拆分字符串以检查第二部分是否匹配。如果是这样,我只想使用第一个匹配 再举几个字符串示例: Any-word 3, with comma 48, 50 -- 51, 527 Anything

我怎样才能分开这根线

Any-word 3, with comma 48, 50 -- 51, 527
…放入
任何带逗号的单词3和
48,50--51527
?第二部分总是一个数字;可选有多个数字(如本例中所示),可以用“,”和/或“--”分隔。第二部分也没有任何单词或字母(这与第一部分中的数字3不同)

我需要拆分字符串以检查第二部分是否匹配。如果是这样,我只想使用第一个匹配

再举几个字符串示例:

Any-word 3, with comma 48, 50 -- 51, 527
Anything 12
--Some thing 30-- 51, 1
123,
89
Just words
应按如下方式拆分:

Any-word 3, with comma|48, 50 -- 51, 527
Anything|12
--Some thing|30-- 51, 1
|123,
|89
Just words|
尝试使用

preg_match($re, $str, $match);

你可以试试这个式样

^(.*?) (?!.*[a-z])(.*)

^               # Start of string/line
(               # Capturing Group (1)
  .             # Any character except line break
  *?            # (zero or more)(lazy)
)               # End of # Capturing Group (1)
                # " "
(?!             # Negative Look-Ahead
  .             # Any character except line break
  *             # (zero or more)(greedy)
  [a-z]         # Character Class [a-z]
)               # End of # Negative Look-Ahead
(               # Capturing Group (2)
  .             # Any character except line break
  *             # (zero or more)(greedy)
)               # End of # Capturing Group (2)