Php 正则表达式匹配字符串,直到第一次出现小数点后跟一个制表符
我正在寻找一个正则表达式来实现以下功能:从一个列表中,我只希望所有字符串在第一次出现小数点后都有一个制表符。这些字符串只能位于每行的开头。使用我当前的regexPhp 正则表达式匹配字符串,直到第一次出现小数点后跟一个制表符,php,regex,Php,Regex,我正在寻找一个正则表达式来实现以下功能:从一个列表中,我只希望所有字符串在第一次出现小数点后都有一个制表符。这些字符串只能位于每行的开头。使用我当前的regex/^(\S+\)/gm我甚至可以得到一个有2个或更多小数点的字符串 下面是一些示例代码(空格实际上是选项卡): 我需要的是aaa.,abarth.,ai.和xn--ngbc5azd.但不是a0.nic.abarth.或whois.ai或任何其他小数点超过1的字符串 谢谢 您可以使用 '~^[^.\r\n]+\.(?=\t)~m' 看注意
/^(\S+\)/gm
我甚至可以得到一个有2个或更多小数点的字符串
下面是一些示例代码(空格实际上是选项卡):
我需要的是aaa.
,abarth.
,ai.
和xn--ngbc5azd.
但不是a0.nic.abarth.
或whois.ai
或任何其他小数点超过1的字符串
谢谢 您可以使用
'~^[^.\r\n]+\.(?=\t)~m'
看注意:如果将行作为单独的字符串传递,则不需要\r\n
和m
修饰符)
详细信息
-行的起始位置(因为^
修饰符使m
匹配行的起始位置)^
-1+字符,而不是[^.\r\n]+
、LF和CR
-一个点\。
-在(?=\t)
之后必须有一个选项卡
Array
(
[0] => aaa.
[1] => abarth.
[2] => ai.
[3] => xn--ngbc5azd.
)
延迟回答,但您也可以使用:
preg_match_all( '/^([^.]+\.)\t/m', $x, $m, PREG_PATTERN_ORDER );
print_r( $m[1] );
当然,示例文本中没有选项卡。但是如果有,
(?m)^[^\s.]*\.(?=\t)
或者您可以使用其他垃圾
Array
(
[0] => aaa.
[1] => abarth.
[2] => ai.
[3] => xn--ngbc5azd.
)
preg_match_all( '/^([^.]+\.)\t/m', $x, $m, PREG_PATTERN_ORDER );
print_r( $m[1] );
Array
(
[0] => aaa.
[1] => abarth.
[2] => ai.
[3] => xn--ngbc5azd.
)