【发布时间】:2013-01-24 18:54:43
【问题描述】:
这是我的字符串:
$myString = "first second third,el forth, fiveeee, six";
我要捕捉的是:
first
second
third
el forth
fiveeee
six
这是我尝试在 preg_split 中使用正则表达式的方法:
$myPattern = "[\s,]";
问题是这会分别捕获“el”和“forth”..
我怎样才能欺骗它来捕获 el ?
编辑:
我不清楚.. 我想将 el 捕获为单个数组元素。因为 EL 太短了。我认为它是一个单词。喜欢:
EL CLASSICO,SOMETHING DIFFERENT,SOMETHINGELSEHERE SOMEMORETEXT 应该是:
* `EL CLASSICO`
* `SOMETHING DIFFERENT`
* `SOMETHINGELSEHERE`
* `SOMEMORETEXT`
它们应该用空格或逗号分隔,但如果有 EL 或 LE 之类的内容,则应忽略。
【问题讨论】:
-
您如何确定是否应将“elth”之类的字符串作为一个项目捕获,而将“first second”作为两个项目捕获?我要说的是,就目前而言,如果程序员不知道实际的字符串是什么,当字符串中的值发生变化时,您就无法可靠地拆分这样的字符串。
-
@MikeBrant 我想确定它是否等于或小于 3 个字符,例如 DER DIE DAS 或 EL 或 LE...
-
但是“六”有三个字母,所以“六七”会被捕获为一个。
-
@iamnotmaynard 如果它有三个字母就可以了。但如果有“xxx abcd”之类的内容,则不应捕获它,末尾的“xxx”很好,因为它后面没有更多文本。如果有,那么它应该被整体捕获。它不是,只是获取树字母。如果 3 个字母后有逗号,请按原样获取。我想正则表达式太复杂了?
标签: php regex preg-split